├── .project ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── alm ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.m2e.core.prefs ├── pom.xml └── src │ └── org │ └── xframium │ └── integrations │ └── alm │ ├── ALMRESTConnection.java │ ├── ALMResponse.java │ └── entity │ ├── ALMAttachment.java │ ├── ALMData.java │ ├── ALMDefect.java │ └── ALMEntity.java ├── driver ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.m2e.core.prefs ├── LICENSE ├── build.xml ├── pom.xml ├── src │ └── org │ │ └── xframium │ │ ├── console │ │ ├── ExecutionContainer.java │ │ ├── http │ │ │ ├── ExecutionConsole.java │ │ │ ├── handler │ │ │ │ ├── ECHandler.java │ │ │ │ ├── package-info.java │ │ │ │ └── spi │ │ │ │ │ ├── ExecuteTest.java │ │ │ │ │ ├── KillSwitch.java │ │ │ │ │ ├── ListFolder.java │ │ │ │ │ ├── OpenConsole.java │ │ │ │ │ ├── OpenFile.java │ │ │ │ │ ├── OpenHTML.java │ │ │ │ │ ├── OpenSuite.java │ │ │ │ │ ├── TestStatus.java │ │ │ │ │ ├── ThreadStatus.java │ │ │ │ │ └── package-info.java │ │ │ ├── html │ │ │ │ ├── css │ │ │ │ │ ├── angular-ui-tree.css │ │ │ │ │ ├── angular-ui-tree.min.css │ │ │ │ │ ├── application.css │ │ │ │ │ ├── bootstrap-select.css │ │ │ │ │ ├── bootstrap-select.min.css │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── toolkit-inverse.css │ │ │ │ │ └── toolkit-light.css │ │ │ │ ├── executionConsole.html │ │ │ │ ├── images │ │ │ │ │ ├── BLOCKED.png │ │ │ │ │ ├── NEW.png │ │ │ │ │ ├── RUNNABLE.png │ │ │ │ │ ├── TERMINATED.png │ │ │ │ │ ├── TIMED_WAITING.png │ │ │ │ │ ├── WAITING.png │ │ │ │ │ ├── mll.png │ │ │ │ │ └── xframium.png │ │ │ │ ├── js │ │ │ │ │ ├── angular-ui-tree.js │ │ │ │ │ ├── angular-ui-tree.min.js │ │ │ │ │ ├── bootstrap-select.js │ │ │ │ │ ├── bootstrap-select.min.js │ │ │ │ │ ├── bootstrap.min.js │ │ │ │ │ ├── ec.js │ │ │ │ │ ├── ecServices.js │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── selection-model.min.js │ │ │ │ │ ├── ui-bootstrap-2.1.3.js │ │ │ │ │ ├── ui-bootstrap-2.1.3.min.js │ │ │ │ │ ├── ui-bootstrap-tpls-2.1.3.min.js │ │ │ │ │ └── ui-bootstrap-tpls-2.1.4.js │ │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ └── package-info.java │ │ └── driver │ │ ├── AbstractConfigurationReader.java │ │ ├── ConfigurationReader.java │ │ ├── GlobalListener.java │ │ ├── SuiteListener.java │ │ ├── TXTConfigurationReader.java │ │ ├── TestDriver.java │ │ ├── XMLConfigurationReader.java │ │ ├── XMLTestDriver.java │ │ └── xsd │ │ ├── ObjectFactory.java │ │ ├── XActivity.java │ │ ├── XApplication.java │ │ ├── XArtifact.java │ │ ├── XCapabilities.java │ │ ├── XCloud.java │ │ ├── XContent.java │ │ ├── XData.java │ │ ├── XDependency.java │ │ ├── XDescription.java │ │ ├── XDevice.java │ │ ├── XDeviceCapability.java │ │ ├── XDevices.java │ │ ├── XDriver.java │ │ ├── XElement.java │ │ ├── XElementParameter.java │ │ ├── XFlow.java │ │ ├── XFramiumRoot.java │ │ ├── XFunction.java │ │ ├── XInitiator.java │ │ ├── XLibrary.java │ │ ├── XModel.java │ │ ├── XObjectDeviceCapability.java │ │ ├── XOptions.java │ │ ├── XPackage.java │ │ ├── XPackages.java │ │ ├── XPage.java │ │ ├── XParameter.java │ │ ├── XProperty.java │ │ ├── XPropertyAdapter.java │ │ ├── XProxy.java │ │ ├── XReference.java │ │ ├── XReferences.java │ │ ├── XSecurity.java │ │ ├── XSimpleElement.java │ │ ├── XStep.java │ │ ├── XSuite.java │ │ ├── XTag.java │ │ ├── XTest.java │ │ ├── XToken.java │ │ ├── XValidator.java │ │ ├── package-info.java │ │ └── xFramiumDriver.xsd └── xEC.jnlp ├── extensions └── xframium-perfecto │ ├── .classpath │ ├── .gitignore │ ├── .project │ ├── .settings │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.m2e.core.prefs │ ├── pom.xml │ └── src │ └── com │ └── xframium │ └── device │ └── factory │ └── spi │ ├── PERFECTODriverFactory.java │ └── PerfectoWebDriver.java ├── framework ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.m2e.core.prefs ├── LICENSE ├── pom.xml ├── src │ └── org │ │ └── xframium │ │ ├── Initializable.java │ │ ├── Tester.java │ │ ├── XFramiumNamespaceContext.java │ │ ├── application │ │ ├── AbstractApplicationProvider.java │ │ ├── ApplicationDescriptor.java │ │ ├── ApplicationProvider.java │ │ ├── ApplicationRegistry.java │ │ ├── ApplicationVersion.java │ │ ├── CSVApplicationProvider.java │ │ ├── ExcelApplicationProvider.java │ │ ├── SQLApplicationProvider.java │ │ ├── XMLApplicationProvider.java │ │ ├── package-info.java │ │ ├── sql │ │ │ ├── package-info.java │ │ │ ├── sample-inserts.sql │ │ │ └── tables.sql │ │ └── xsd │ │ │ ├── Application.java │ │ │ ├── DeviceCapability.java │ │ │ ├── ObjectFactory.java │ │ │ ├── RegistryRoot.java │ │ │ ├── applicationRegistry.xsd │ │ │ └── package-info.java │ │ ├── artifact │ │ ├── AbstractArtifact.java │ │ ├── Artifact.java │ │ ├── ArtifactManager.java │ │ ├── ArtifactTime.java │ │ ├── ArtifactType.java │ │ ├── package-info.java │ │ └── spi │ │ │ ├── ALMDefectArtifact.java │ │ │ ├── AllInOneReportArtifact.java │ │ │ ├── CSVDataArtifact.java │ │ │ ├── ConsoleLogArtifact.java │ │ │ ├── DefaultHistoryReportingArtifact.java │ │ │ ├── DefaultReportingArtifact.java │ │ │ ├── DefaultSuiteReportingArtifact.java │ │ │ ├── DeviceLogArtifact.java │ │ │ ├── HTMLAssetsArtifact.java │ │ │ ├── HTMLGridArtifact.java │ │ │ ├── HTMLSourceArtifact.java │ │ │ ├── ImagingArtifact.java │ │ │ ├── JIRAUpdateExecutionArtifact.java │ │ │ ├── JSONArtifact.java │ │ │ ├── JSONGridArtifact.java │ │ │ ├── JSONHistoryArtifact.java │ │ │ ├── JSONSuiteArtifact.java │ │ │ ├── PerfectoCSVReport.java │ │ │ ├── PerfectoHTMLReport.java │ │ │ ├── PerfectoPDFReport.java │ │ │ ├── PerfectoReportingServices.java │ │ │ ├── PerfectoWindTunnel.java │ │ │ ├── PerfectoXMLReport.java │ │ │ ├── SauceLabsReportingServices.java │ │ │ ├── StatisticsArtifact.java │ │ │ ├── TimingArtifact.java │ │ │ ├── VitalsArtifact.java │ │ │ └── XMLSourceArtifact.java │ │ ├── browser │ │ └── capabilities │ │ │ ├── AbstractBrowserCapability.java │ │ │ ├── BrowserCapabilityFactory.java │ │ │ ├── BrowserCapabilityManager.java │ │ │ └── ChromeOptionsFactory.java │ │ ├── container │ │ ├── ApplicationContainer.java │ │ ├── CloudContainer.java │ │ ├── ContextContainer.java │ │ ├── DeviceContainer.java │ │ ├── DriverContainer.java │ │ ├── FavoriteContainer.java │ │ ├── FileContainer.java │ │ ├── FrameContainer.java │ │ ├── ModelContainer.java │ │ ├── PageContainer.java │ │ ├── SiteContainer.java │ │ ├── SuiteContainer.java │ │ ├── TagContainer.java │ │ ├── ThreadContainer.java │ │ └── WindowContainer.java │ │ ├── content │ │ ├── ContentData.java │ │ ├── ContentManager.java │ │ ├── DefaultContentData.java │ │ ├── package-info.java │ │ └── provider │ │ │ ├── AbstractContentProvider.java │ │ │ ├── ContentProvider.java │ │ │ ├── ExcelContentProvider.java │ │ │ ├── SQLContentProvider.java │ │ │ ├── XMLContentProvider.java │ │ │ ├── package-info.java │ │ │ └── sql │ │ │ ├── package-info.java │ │ │ ├── sample-insert.sql │ │ │ └── table.sql │ │ ├── debugger │ │ ├── DebugManager.java │ │ ├── StepContainer.java │ │ ├── TestContainer.java │ │ ├── debugger.html │ │ ├── handler │ │ │ ├── AheadHandler.java │ │ │ ├── ExtractHandler.java │ │ │ ├── ExtractXMLHandler.java │ │ │ ├── PauseHandler.java │ │ │ ├── ResumeHandler.java │ │ │ ├── SessionHandler.java │ │ │ ├── SnapshotHandler.java │ │ │ └── TestHandler.java │ │ └── sessions.html │ │ ├── device │ │ ├── ConnectedDevice.java │ │ ├── DeviceAnalytics.java │ │ ├── DeviceCap.java │ │ ├── DeviceManager.java │ │ ├── DeviceVersion.java │ │ ├── SimpleDevice.java │ │ ├── XFramiumLock.java │ │ ├── capability │ │ │ ├── AbstractCapabilityBridge.java │ │ │ ├── CapabilityBridge.java │ │ │ └── ExampleCapabilityBridge.java │ │ ├── cloud │ │ │ ├── AbstractCloudProvider.java │ │ │ ├── CSVCloudProvider.java │ │ │ ├── CloudDescriptor.java │ │ │ ├── CloudProvider.java │ │ │ ├── CloudRegistry.java │ │ │ ├── EncryptedCloudProvider.java │ │ │ ├── ExcelCloudProvider.java │ │ │ ├── SQLCloudProvider.java │ │ │ ├── XMLCloudProvider.java │ │ │ ├── action │ │ │ │ ├── APPIUMCloudActionProvider.java │ │ │ │ ├── AbstractCloudActionProvider.java │ │ │ │ ├── BROWSERSTACKCloudActionProvider.java │ │ │ │ ├── CloudActionProvider.java │ │ │ │ ├── PERFECTOCloudActionProvider.java │ │ │ │ ├── SAUCELABSCloudActionProvider.java │ │ │ │ ├── SELENIUMCloudActionProvider.java │ │ │ │ └── WINDOWSCloudActionProvider.java │ │ │ ├── package-info.java │ │ │ ├── sql │ │ │ │ ├── package-info.java │ │ │ │ ├── sample-insert.sql │ │ │ │ └── table.sql │ │ │ └── xsd │ │ │ │ ├── Cloud.java │ │ │ │ ├── KeepAlive.java │ │ │ │ ├── ObjectFactory.java │ │ │ │ ├── RegistryRoot.java │ │ │ │ ├── cloudRegistry.xsd │ │ │ │ └── package-info.java │ │ ├── comparator │ │ │ ├── WeightedDeviceComparator.java │ │ │ └── package-info.java │ │ ├── data │ │ │ ├── CSVDataProvider.java │ │ │ ├── DataManager.java │ │ │ ├── DataProvider.java │ │ │ ├── ExcelDataProvider.java │ │ │ ├── NamedDataProvider.java │ │ │ ├── SQLDataProvider.java │ │ │ ├── XMLDataProvider.java │ │ │ ├── package-info.java │ │ │ ├── perfectoMobile │ │ │ │ ├── AbstractHandsetValidator.java │ │ │ │ ├── AvailableHandsetValidator.java │ │ │ │ ├── PerfectoMobileDataProvider.java │ │ │ │ ├── PerfectoMobileHandsetValidator.java │ │ │ │ ├── PerfectoMobilePluginProvider.java │ │ │ │ ├── ReservedHandsetValidator.java │ │ │ │ └── package-info.java │ │ │ ├── sql │ │ │ │ ├── package-info.java │ │ │ │ ├── sample-inserts.sql │ │ │ │ └── tables.sql │ │ │ └── xsd │ │ │ │ ├── Device.java │ │ │ │ ├── DeviceCapability.java │ │ │ │ ├── ObjectFactory.java │ │ │ │ ├── RegistryRoot.java │ │ │ │ ├── deviceRegistry.xsd │ │ │ │ └── package-info.java │ │ ├── factory │ │ │ ├── AbstractDriverFactory.java │ │ │ ├── CachedWebElement.java │ │ │ ├── DeviceWebDriver.java │ │ │ ├── DriverFactory.java │ │ │ ├── DriverManager.java │ │ │ ├── MorelandWebElement.java │ │ │ ├── package-info.java │ │ │ └── spi │ │ │ │ ├── .gitignore │ │ │ │ ├── ANDROIDDriverFactory.java │ │ │ │ ├── EXPERITESTDriverFactory.java │ │ │ │ ├── IOSDriverFactory.java │ │ │ │ ├── WEBDriverFactory.java │ │ │ │ ├── WINDOWSDriverFactory.java │ │ │ │ └── package-info.java │ │ ├── interrupt │ │ │ ├── AbstractDeviceInterrupt.java │ │ │ ├── CallDeviceInterrupt.java │ │ │ ├── DeviceInterrupt.java │ │ │ ├── DeviceInterruptFactory.java │ │ │ ├── DeviceInterruptThread.java │ │ │ ├── NOOPDeviceInterrupt.java │ │ │ ├── SMSDeviceInterrupt.java │ │ │ └── package-info.java │ │ ├── keepAlive │ │ │ ├── AbstractDeviceKeepAlive.java │ │ │ ├── ContextKeepAlive.java │ │ │ ├── DeviceKeepAlive.java │ │ │ └── SnapshotKeepAlive.java │ │ ├── logging │ │ │ ├── ThreadedFileHandler.java │ │ │ └── package-info.java │ │ ├── ng │ │ │ ├── AbstractJavaTest.java │ │ │ ├── AbstractSeleniumTest.java │ │ │ ├── RunContainer.java │ │ │ ├── TestContainer.java │ │ │ ├── TestName.java │ │ │ ├── TestPackage.java │ │ │ └── package-info.java │ │ ├── package-info.java │ │ ├── property │ │ │ ├── AbstractPropertyAdapter.java │ │ │ ├── AppiumPropertyAdapter.java │ │ │ ├── PropertyAdapter.java │ │ │ ├── SeleniumPropertyAdapter.java │ │ │ └── package-info.java │ │ └── proxy │ │ │ └── ProxyRegistry.java │ │ ├── email │ │ ├── AbstractEmailProvider.java │ │ ├── EmailProvider.java │ │ ├── EmailProviderFactory.java │ │ ├── package-info.java │ │ ├── receive │ │ │ ├── AbstractReceiveEmailProvider.java │ │ │ ├── MessageWrapper.java │ │ │ ├── ReceiveEmailProvider.java │ │ │ ├── filter │ │ │ │ ├── AbstractMessageFilter.java │ │ │ │ ├── MessageFilter.java │ │ │ │ ├── package-info.java │ │ │ │ └── spi │ │ │ │ │ ├── AgeMessageFilter.java │ │ │ │ │ ├── FromMessageFilter.java │ │ │ │ │ ├── SubjectMessageFilter.java │ │ │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ └── spi │ │ │ │ ├── DefaultReceiveEmailProvider.java │ │ │ │ └── package-info.java │ │ └── send │ │ │ ├── AbstractSendEmailProvider.java │ │ │ ├── SendEmailProvider.java │ │ │ ├── package-info.java │ │ │ └── spi │ │ │ ├── DefaultSendEmailProvider.java │ │ │ └── package-info.java │ │ ├── exception │ │ ├── BubbledFailureException.java │ │ ├── DataConfigurationException.java │ │ ├── DataIdentificationException.java │ │ ├── DeviceAcquisitionException.java │ │ ├── DeviceConfigurationException.java │ │ ├── DeviceException.java │ │ ├── FilteredException.java │ │ ├── FlowException.java │ │ ├── ObjectConfigurationException.java │ │ ├── ObjectIdentificationException.java │ │ ├── ScriptConfigurationException.java │ │ ├── ScriptException.java │ │ ├── TestConfigurationException.java │ │ └── XFramiumException.java │ │ ├── gesture │ │ ├── AbstractDragDropGesture.java │ │ ├── AbstractGesture.java │ │ ├── AbstractKeyBoardGesture.java │ │ ├── AbstractKeyPressGesture.java │ │ ├── AbstractPressGesture.java │ │ ├── AbstractRotateGesture.java │ │ ├── AbstractSwipeGesture.java │ │ ├── AbstractTwoFingerGesture.java │ │ ├── Gesture.java │ │ ├── GestureConsumer.java │ │ ├── GestureManager.java │ │ ├── device │ │ │ └── action │ │ │ │ ├── AbstractDefaultAction.java │ │ │ │ ├── DeviceAction.java │ │ │ │ ├── DeviceActionFactory.java │ │ │ │ ├── DeviceActionManager.java │ │ │ │ ├── package-info.java │ │ │ │ └── spi │ │ │ │ └── perfecto │ │ │ │ ├── BackAction.java │ │ │ │ ├── CallAction.java │ │ │ │ ├── CleanApplicationAction.java │ │ │ │ ├── CloseApplicationAction.java │ │ │ │ ├── ConfigureNetworkAction.java │ │ │ │ ├── CopyFileAction.java │ │ │ │ ├── DownloadFileAction.java │ │ │ │ ├── DumpStateAction.java │ │ │ │ ├── FingerPrintAction.java │ │ │ │ ├── HideKeyboardAction.java │ │ │ │ ├── HomeAction.java │ │ │ │ ├── InstallApplicationAction.java │ │ │ │ ├── LocationAction.java │ │ │ │ ├── LockScreenAction.java │ │ │ │ ├── OpenApplicationAction.java │ │ │ │ ├── PerfectoDeviceActionFactory.java │ │ │ │ ├── RebootAction.java │ │ │ │ ├── RecoverAction.java │ │ │ │ ├── ResetApplicationsAction.java │ │ │ │ ├── SendKeysAction.java │ │ │ │ ├── SendTextAction.java │ │ │ │ ├── StartMonitorAction.java │ │ │ │ ├── StartNetworkVirtualization.java │ │ │ │ ├── StopMonitorAction.java │ │ │ │ ├── StopNetworkVirtualization.java │ │ │ │ ├── SwitchContextAction.java │ │ │ │ ├── URLAction.java │ │ │ │ ├── UninstallApplicationAction.java │ │ │ │ └── package-info.java │ │ ├── factory │ │ │ ├── AbstractGestureFactory.java │ │ │ ├── ExecutionProvider.java │ │ │ ├── GestureFactory.java │ │ │ ├── package-info.java │ │ │ └── spi │ │ │ │ ├── AppiumGestureFactory.java │ │ │ │ ├── PerfectoGestureFactory.java │ │ │ │ ├── PerfectoV7GestureFactory.java │ │ │ │ ├── SeleniumGestureFactory.java │ │ │ │ ├── appium │ │ │ │ ├── DragDropGesture.java │ │ │ │ ├── KeyBoardGesture.java │ │ │ │ ├── KeyPressGesture.java │ │ │ │ ├── PressGesture.java │ │ │ │ ├── RotateGesture.java │ │ │ │ ├── SwipeGesture.java │ │ │ │ ├── TwoFingerGesture.java │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ ├── perfecto │ │ │ │ ├── DragDropGesture.java │ │ │ │ ├── KeyPressGesture.java │ │ │ │ ├── PressGesture.java │ │ │ │ ├── RotateGesture.java │ │ │ │ ├── SwipeGesture.java │ │ │ │ ├── TwoFingerGesture.java │ │ │ │ └── package-info.java │ │ │ │ └── selenium │ │ │ │ ├── DragDropGesture.java │ │ │ │ ├── KeyPressGesture.java │ │ │ │ └── package-info.java │ │ └── package-info.java │ │ ├── history │ │ └── HistoryWriter.java │ │ ├── imaging │ │ ├── ImagingActionType.java │ │ └── package-info.java │ │ ├── integrations │ │ ├── common │ │ │ ├── Location.java │ │ │ ├── PercentagePoint.java │ │ │ └── package-info.java │ │ ├── perfectoMobile │ │ │ └── rest │ │ │ │ ├── PerfectoMobile.java │ │ │ │ ├── bean │ │ │ │ ├── Action.java │ │ │ │ ├── ApplicationCollection.java │ │ │ │ ├── Execution.java │ │ │ │ ├── ExecutionCollection.java │ │ │ │ ├── ExecutionReport.java │ │ │ │ ├── ExecutionResult.java │ │ │ │ ├── GestureExecution.java │ │ │ │ ├── Handset.java │ │ │ │ ├── HandsetCollection.java │ │ │ │ ├── ImageExecution.java │ │ │ │ ├── Item.java │ │ │ │ ├── ItemCollection.java │ │ │ │ ├── Response.java │ │ │ │ ├── Script.java │ │ │ │ ├── Timer.java │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ └── services │ │ │ │ ├── AbstractService.java │ │ │ │ ├── Application.java │ │ │ │ ├── Device.java │ │ │ │ ├── Devices.java │ │ │ │ ├── Executions.java │ │ │ │ ├── Gestures.java │ │ │ │ ├── Imaging.java │ │ │ │ ├── PerfectoService.java │ │ │ │ ├── RESTInvocationHandler.java │ │ │ │ ├── Reports.java │ │ │ │ ├── Repositories.java │ │ │ │ ├── WindTunnel.java │ │ │ │ └── package-info.java │ │ ├── rest │ │ │ └── bean │ │ │ │ ├── AbstractBean.java │ │ │ │ ├── Bean.java │ │ │ │ ├── factory │ │ │ │ ├── AbstractBeanFactory.java │ │ │ │ ├── BeanFactory.java │ │ │ │ ├── BeanManager.java │ │ │ │ ├── JSONBeanFactory.java │ │ │ │ ├── XMLBeanFactory.java │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ └── sauceLabs │ │ │ └── rest │ │ │ ├── SauceException.java │ │ │ ├── SauceREST.java │ │ │ ├── SauceSSLSocketFactory.java │ │ │ ├── SecurityUtils.java │ │ │ └── bean │ │ │ ├── Allowance.java │ │ │ └── User.java │ │ ├── package-info.java │ │ ├── page │ │ ├── AbstractPage.java │ │ ├── BY.java │ │ ├── ElementDescriptor.java │ │ ├── LocalAbstractPage.java │ │ ├── Page.java │ │ ├── PageManager.java │ │ ├── StepStatus.java │ │ ├── activity │ │ │ ├── ActivityInitiator.java │ │ │ ├── ActivityValidator.java │ │ │ ├── PageActivity.java │ │ │ └── package-info.java │ │ ├── data │ │ │ ├── DefaultPageData.java │ │ │ ├── PageData.java │ │ │ ├── PageDataContainer.java │ │ │ ├── PageDataManager.java │ │ │ ├── package-info.java │ │ │ └── provider │ │ │ │ ├── AbstractPageDataProvider.java │ │ │ │ ├── ExcelPageDataProvider.java │ │ │ │ ├── PageDataProvider.java │ │ │ │ ├── SQLPageDataProvider.java │ │ │ │ ├── XMLPageDataProvider.java │ │ │ │ ├── package-info.java │ │ │ │ └── sql │ │ │ │ ├── package-info.java │ │ │ │ ├── sample-inserts.sql │ │ │ │ └── tables.sql │ │ ├── element │ │ │ ├── AbstractElement.java │ │ │ ├── ByCollection.java │ │ │ ├── ByImage.java │ │ │ ├── ByNaturalLanguage.java │ │ │ ├── ByOCR.java │ │ │ ├── ByResult.java │ │ │ ├── ByWrapper.java │ │ │ ├── Element.java │ │ │ ├── ElementFactory.java │ │ │ ├── ElementFork.java │ │ │ ├── ReportableBy.java │ │ │ ├── SeleniumElement.java │ │ │ ├── SubElement.java │ │ │ ├── VisualWebElement.java │ │ │ ├── natural │ │ │ │ ├── NLXpath.java │ │ │ │ ├── NLXpathFactory.java │ │ │ │ ├── NaturalLanguageDescriptor.java │ │ │ │ └── spi │ │ │ │ │ ├── AbstractNLXPath.java │ │ │ │ │ ├── AndroidNLXPath.java │ │ │ │ │ ├── IOSNLXPath.java │ │ │ │ │ └── WEBNLXPath.java │ │ │ ├── package-info.java │ │ │ ├── provider │ │ │ │ ├── AbstractElementProvider.java │ │ │ │ ├── CSVElementProvider.java │ │ │ │ ├── ElementDataSource.java │ │ │ │ ├── ElementProvider.java │ │ │ │ ├── ExcelElementProvider.java │ │ │ │ ├── QAFElementProvider.java │ │ │ │ ├── SQLElementProvider.java │ │ │ │ ├── XMLElementProvider.java │ │ │ │ ├── package-info.java │ │ │ │ ├── sql │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── sample-inserts.sql │ │ │ │ │ └── tables.sql │ │ │ │ └── xsd │ │ │ │ │ ├── Activity.java │ │ │ │ │ ├── Element.java │ │ │ │ │ ├── ElementParameter.java │ │ │ │ │ ├── Import.java │ │ │ │ │ ├── Initiator.java │ │ │ │ │ ├── ObjectFactory.java │ │ │ │ │ ├── Page.java │ │ │ │ │ ├── RegistryRoot.java │ │ │ │ │ ├── SimpleElement.java │ │ │ │ │ ├── Site.java │ │ │ │ │ ├── Validator.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── pageRegistry.xsd │ │ │ └── spi │ │ │ │ ├── package-info.java │ │ │ │ └── set │ │ │ │ ├── AbstractSetMethod.java │ │ │ │ ├── DefaultSetMethod.java │ │ │ │ ├── NumberPickerSetMethod.java │ │ │ │ ├── PickerSetMethod.java │ │ │ │ ├── SelectSetMethod.java │ │ │ │ ├── SetMethod.java │ │ │ │ ├── SetMethodFactory.java │ │ │ │ ├── SpinnerSetMethod.java │ │ │ │ ├── ULSetMethod.java │ │ │ │ └── package-info.java │ │ ├── factory │ │ │ ├── AbstractPageFactory.java │ │ │ ├── DefaultPageFactory.java │ │ │ ├── LocalPageFactory.java │ │ │ ├── PageFactory.java │ │ │ └── package-info.java │ │ ├── keyWord │ │ │ ├── GherkinContainer.java │ │ │ ├── KeyWordDriver.java │ │ │ ├── KeyWordPage.java │ │ │ ├── KeyWordParameter.java │ │ │ ├── KeyWordStep.java │ │ │ ├── KeyWordTest.java │ │ │ ├── KeyWordToken.java │ │ │ ├── gherkinExtension │ │ │ │ └── XMLFormatter.java │ │ │ ├── matrixExtension │ │ │ │ ├── DataArray.java │ │ │ │ ├── MatrixParameter.java │ │ │ │ ├── MatrixParameterArray.java │ │ │ │ ├── MatrixStep.java │ │ │ │ ├── MatrixStepArray.java │ │ │ │ ├── MatrixTest.java │ │ │ │ ├── MatrixToken.java │ │ │ │ └── MatrixTokenArray.java │ │ │ ├── package-info.java │ │ │ ├── provider │ │ │ │ ├── ExcelKeyWordProvider.java │ │ │ │ ├── GherkinKeyWordProvider.java │ │ │ │ ├── KeyWordProvider.java │ │ │ │ ├── SQLKeyWordProvider.java │ │ │ │ ├── XMLKeyWordProvider.java │ │ │ │ ├── gherkin │ │ │ │ │ └── CommonGherkin.java │ │ │ │ ├── package-info.java │ │ │ │ ├── sql │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── sample-inserts.sql │ │ │ │ │ └── tables.sql │ │ │ │ └── xsd │ │ │ │ │ ├── Description.java │ │ │ │ │ ├── Import.java │ │ │ │ │ ├── Model.java │ │ │ │ │ ├── ObjectFactory.java │ │ │ │ │ ├── Page.java │ │ │ │ │ ├── Parameter.java │ │ │ │ │ ├── RegistryRoot.java │ │ │ │ │ ├── Reporting.java │ │ │ │ │ ├── Step.java │ │ │ │ │ ├── Test.java │ │ │ │ │ ├── Token.java │ │ │ │ │ ├── XFunction.java │ │ │ │ │ └── package-info.java │ │ │ ├── spi │ │ │ │ ├── KeyWordPageImpl.java │ │ │ │ └── package-info.java │ │ │ └── step │ │ │ │ ├── AbstractKeyWordStep.java │ │ │ │ ├── KeyWordStepFactory.java │ │ │ │ ├── StepSync.java │ │ │ │ ├── SyntheticStep.java │ │ │ │ ├── package-info.java │ │ │ │ ├── spi │ │ │ │ ├── KWSAccessibility.java │ │ │ │ ├── KWSAddDevice.java │ │ │ │ ├── KWSAddDevice2.java │ │ │ │ ├── KWSAlert.java │ │ │ │ ├── KWSAlign.java │ │ │ │ ├── KWSApplication.java │ │ │ │ ├── KWSAt.java │ │ │ │ ├── KWSAttribute.java │ │ │ │ ├── KWSBreak.java │ │ │ │ ├── KWSBrowser.java │ │ │ │ ├── KWSCache.java │ │ │ │ ├── KWSCall.java │ │ │ │ ├── KWSCall2.java │ │ │ │ ├── KWSCheckColor.java │ │ │ │ ├── KWSClick.java │ │ │ │ ├── KWSCommand.java │ │ │ │ ├── KWSCompare.java │ │ │ │ ├── KWSCompare2.java │ │ │ │ ├── KWSConsole.java │ │ │ │ ├── KWSContext.java │ │ │ │ ├── KWSContrastRatio.java │ │ │ │ ├── KWSDate.java │ │ │ │ ├── KWSDebug.java │ │ │ │ ├── KWSDevice.java │ │ │ │ ├── KWSDumpState.java │ │ │ │ ├── KWSElse.java │ │ │ │ ├── KWSEmail.java │ │ │ │ ├── KWSEnabled.java │ │ │ │ ├── KWSExecJS.java │ │ │ │ ├── KWSExecWS.java │ │ │ │ ├── KWSExists.java │ │ │ │ ├── KWSFlow.java │ │ │ │ ├── KWSFocus.java │ │ │ │ ├── KWSFork.java │ │ │ │ ├── KWSFunction.java │ │ │ │ ├── KWSGesture.java │ │ │ │ ├── KWSGherkin.java │ │ │ │ ├── KWSLoop.java │ │ │ │ ├── KWSLoopBreak.java │ │ │ │ ├── KWSMath.java │ │ │ │ ├── KWSModule.java │ │ │ │ ├── KWSMouse.java │ │ │ │ ├── KWSNavigate.java │ │ │ │ ├── KWSOperator.java │ │ │ │ ├── KWSRandom.java │ │ │ │ ├── KWSReport.java │ │ │ │ ├── KWSReturn.java │ │ │ │ ├── KWSSQL.java │ │ │ │ ├── KWSScript.java │ │ │ │ ├── KWSSelected.java │ │ │ │ ├── KWSSet.java │ │ │ │ ├── KWSSetContentKey.java │ │ │ │ ├── KWSString.java │ │ │ │ ├── KWSString2.java │ │ │ │ ├── KWSSwitch.java │ │ │ │ ├── KWSSync.java │ │ │ │ ├── KWSValue.java │ │ │ │ ├── KWSVisible.java │ │ │ │ ├── KWSVisual.java │ │ │ │ ├── KWSWait.java │ │ │ │ ├── KWSWaitFor.java │ │ │ │ ├── KWSWindow.java │ │ │ │ └── package-info.java │ │ │ │ └── transform │ │ │ │ ├── DefaultTransformation.java │ │ │ │ ├── SecureTransformation.java │ │ │ │ ├── ValueTransformation.java │ │ │ │ └── ValueTransformationFactory.java │ │ ├── listener │ │ │ ├── ExecutionListener.java │ │ │ ├── KeyWordListener.java │ │ │ ├── LoggingExecutionListener.java │ │ │ └── package-info.java │ │ ├── outputFormatter.properties │ │ └── package-info.java │ │ ├── reporting │ │ ├── ElementUsage.java │ │ ├── ExecutionContext.java │ │ ├── ExecutionContextStep.java │ │ ├── ExecutionContextTest.java │ │ ├── ReportingElementAdapter.java │ │ ├── ReportingWebElementAdapter.java │ │ ├── html │ │ │ ├── .DS_Store │ │ │ ├── dark │ │ │ │ ├── Grid.html │ │ │ │ ├── Grid.js │ │ │ │ ├── History.html │ │ │ │ ├── History.js │ │ │ │ ├── Imaging.html │ │ │ │ ├── Suite.html │ │ │ │ ├── Suite.js │ │ │ │ ├── Test.html │ │ │ │ ├── Test.js │ │ │ │ └── Timing.html │ │ │ └── light │ │ │ │ ├── .DS_Store │ │ │ │ ├── Grid.html │ │ │ │ ├── History.html │ │ │ │ ├── Imaging.html │ │ │ │ ├── Suite.html │ │ │ │ ├── Test.html │ │ │ │ ├── Timing.html │ │ │ │ └── assets.zip │ │ └── package-info.java │ │ ├── resource │ │ ├── accessibility │ │ │ └── axe │ │ │ │ └── axe.min.js │ │ ├── package-info.java │ │ ├── script │ │ │ ├── applications │ │ │ │ ├── applicationRegistry.xml │ │ │ │ └── package-info.java │ │ │ └── xfNative │ │ │ │ ├── functions │ │ │ │ ├── functions-xfNative.xml │ │ │ │ ├── xF-Launch Settings.xml │ │ │ │ ├── xF-Set Airplane Mode.xml │ │ │ │ ├── xF-Set Data Mode.xml │ │ │ │ ├── xF-Set Date-Time.xml │ │ │ │ ├── xF-Set Location Mode.xml │ │ │ │ ├── xF-Set Notifications Mode.xml │ │ │ │ ├── xF-Set WiFi Mode.xml │ │ │ │ └── xF-Trust Developer.xml │ │ │ │ ├── objectRepository │ │ │ │ ├── page-xF-Application Notifications.xml │ │ │ │ ├── page-xF-Cellular.xml │ │ │ │ ├── page-xF-Device Management.xml │ │ │ │ ├── page-xF-General.xml │ │ │ │ ├── page-xF_Date-Time.xml │ │ │ │ ├── page-xF_Location.xml │ │ │ │ ├── page-xF_Notification.xml │ │ │ │ ├── page-xF_Notifications.xml │ │ │ │ ├── page-xF_Settings.xml │ │ │ │ ├── page-xF_Wi-Fi.xml │ │ │ │ └── site-xfNative.xml │ │ │ │ └── package-info.java │ │ └── xpath.html │ │ ├── spi │ │ ├── Device.java │ │ ├── PropertyProvider.java │ │ ├── driver │ │ │ ├── CachedElement.java │ │ │ ├── CachingDriver.java │ │ │ ├── DeviceProvider.java │ │ │ ├── NativeDriverProvider.java │ │ │ ├── ReportiumProvider.java │ │ │ ├── VisualDriverProvider.java │ │ │ └── package-info.java │ │ └── package-info.java │ │ └── utility │ │ ├── BrowserCacheLogic.java │ │ ├── ContextWalker.java │ │ ├── DateUtility.java │ │ ├── ExecutionDefinition.java │ │ ├── ExecutionDefinitionMap.java │ │ ├── FrameWalker.java │ │ ├── ImageUtility.java │ │ ├── Randomizer.java │ │ ├── SQLUtil.java │ │ ├── SeleniumSessionManager.java │ │ ├── WebServiceClientUtil.java │ │ ├── WindowWalker.java │ │ ├── XMLEscape.java │ │ ├── XPathGenerator.java │ │ ├── data │ │ ├── cityNames.txt │ │ ├── emailDomains.txt │ │ ├── firstNames.txt │ │ ├── lastNames.txt │ │ ├── package-info.java │ │ ├── stateNames.txt │ │ └── streetNames.txt │ │ ├── html │ │ ├── HTMLElementLookup.java │ │ ├── HTMLElementManager.java │ │ ├── HTMLFunction.java │ │ ├── HTMLParameter.java │ │ ├── HTTPLinkCheck.java │ │ └── package-info.java │ │ ├── package-info.java │ │ ├── parser │ │ └── xpath │ │ │ ├── XPath.tokens │ │ │ ├── XPathBaseListener.java │ │ │ ├── XPathBaseVisitor.java │ │ │ ├── XPathLexer.java │ │ │ ├── XPathLexer.tokens │ │ │ ├── XPathListener.java │ │ │ ├── XPathParser.java │ │ │ └── XPathVisitor.java │ │ └── xpath.substitution.properties ├── test │ └── resources │ │ ├── data.sql │ │ └── driverConfig.txt └── xframium.yml ├── jenkins └── README ├── jira ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.m2e.core.prefs ├── pom.xml └── src │ └── org │ └── xframium │ └── integrations │ └── jira │ ├── ExecutionStatus.java │ ├── HTTPMethod.java │ ├── JIRAConnector.java │ ├── JIRAConnectorImpl.java │ ├── entity │ ├── JIRAAttachment.java │ ├── JIRAEntity.java │ ├── JIRAExecution.java │ ├── JIRAProject.java │ ├── JIRATestCycle.java │ └── JIRAVersion.java │ └── util │ ├── JIRAConnectorUtil.java │ ├── JIRAEncryptorUtil.java │ └── ZIPFileUtil.java ├── launcher └── bin │ ├── fail.png │ └── success.png ├── sampleWebTest ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.m2e.core.prefs ├── pom.xml ├── resources │ ├── .gitignore │ ├── Web Test.xml │ ├── applicationRegistry.xml │ ├── cloudRegistry.xml │ ├── data │ │ ├── SAMPLE_DATA.xlsx │ │ └── testData.xml │ ├── deviceRegistry.xml │ ├── functions │ │ ├── Web Test │ │ │ └── Reporting.xml │ │ └── functions-Web Test.xml │ ├── objectRepository │ │ └── Web Test │ │ │ ├── Facebook │ │ │ ├── page-Login.xml │ │ │ └── site-Facebook.xml │ │ │ ├── Google │ │ │ ├── page-Search.xml │ │ │ └── site-Google.xml │ │ │ └── objectRepository.xml │ └── tests │ │ ├── GroupDataTest.xml │ │ ├── Web Test │ │ ├── Facebook Test.xml │ │ └── Google Search.xml │ │ └── tests-Web Test.xml └── src │ └── org │ └── xframium │ └── webTest │ └── WebTestDriver.java ├── terminal-driver ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.m2e.core.prefs ├── doc │ └── run-configs │ │ ├── Headless AppTest.launch │ │ └── Run Emulator.launch ├── lib │ └── openjfx-monocle-8u76-b04.jar ├── pom.xml └── src │ ├── main │ └── java │ │ ├── com │ │ └── bytezone │ │ │ └── dm3270 │ │ │ ├── application │ │ │ ├── CommandFactory.java │ │ │ ├── CommandPane.java │ │ │ ├── Console.java │ │ │ ├── ConsoleKeyEvent.java │ │ │ ├── ConsoleKeyPress.java │ │ │ ├── ConsolePane.java │ │ │ ├── KeyboardStatusChangedEvent.java │ │ │ ├── KeyboardStatusListener.java │ │ │ ├── Mainframe.java │ │ │ ├── MainframeStage.java │ │ │ ├── OptionStage.java │ │ │ ├── Parameters.java │ │ │ ├── ReplayStage.java │ │ │ ├── SiteListStage.java │ │ │ ├── SpyPane.java │ │ │ ├── Terminal.java │ │ │ └── mf.txt │ │ │ ├── assistant │ │ │ ├── AbstractTransferTab.java │ │ │ ├── BatchJob.java │ │ │ ├── BatchJobListener.java │ │ │ ├── BatchJobSelectionListener.java │ │ │ ├── BatchJobTab.java │ │ │ ├── BatchJobTable.java │ │ │ ├── CommandsTab.java │ │ │ ├── Dataset.java │ │ │ ├── DatasetSelectionListener.java │ │ │ ├── DatasetTab.java │ │ │ ├── DatasetTable.java │ │ │ ├── DatasetTreeTable.java │ │ │ ├── DefaultTreeTable.java │ │ │ ├── FileSelectionListener.java │ │ │ ├── FilesTab.java │ │ │ ├── TSOCommand.java │ │ │ ├── TransfersStage.java │ │ │ └── TransfersTab.java │ │ │ ├── attributes │ │ │ ├── Attribute.java │ │ │ ├── BackgroundColor.java │ │ │ ├── ColorAttribute.java │ │ │ ├── ExtendedHighlight.java │ │ │ ├── ForegroundColor.java │ │ │ ├── ResetAttribute.java │ │ │ └── StartFieldAttribute.java │ │ │ ├── buffers │ │ │ ├── AbstractBuffer.java │ │ │ ├── AbstractReplyBuffer.java │ │ │ ├── AbstractTN3270Command.java │ │ │ ├── AbstractTelnetCommand.java │ │ │ ├── Buffer.java │ │ │ ├── DefaultBuffer.java │ │ │ ├── MultiBuffer.java │ │ │ └── ReplyBuffer.java │ │ │ ├── commands │ │ │ ├── AIDCommand.java │ │ │ ├── Command.java │ │ │ ├── EraseAllUnprotectedCommand.java │ │ │ ├── Profile.java │ │ │ ├── ReadCommand.java │ │ │ ├── ReadPartitionQuery.java │ │ │ ├── ReadStructuredFieldCommand.java │ │ │ ├── SystemMessage.java │ │ │ ├── WriteCommand.java │ │ │ ├── WriteControlCharacter.java │ │ │ └── WriteStructuredFieldCommand.java │ │ │ ├── console │ │ │ ├── ConsoleLog.java │ │ │ ├── ConsoleLogStage.java │ │ │ ├── ConsoleMessage.java │ │ │ ├── ConsoleMessageListener.java │ │ │ ├── ConsoleMessageTab.java │ │ │ └── ConsoleMessageTable.java │ │ │ ├── display │ │ │ ├── ContextManager.java │ │ │ ├── Cursor.java │ │ │ ├── CursorMoveListener.java │ │ │ ├── DisplayScreen.java │ │ │ ├── Field.java │ │ │ ├── FieldChangeListener.java │ │ │ ├── FieldManager.java │ │ │ ├── FontDetails.java │ │ │ ├── FontManager.java │ │ │ ├── FontManagerType1.java │ │ │ ├── HistoryManager.java │ │ │ ├── HistoryScreen.java │ │ │ ├── Pen.java │ │ │ ├── PenType1.java │ │ │ ├── Screen.java │ │ │ ├── ScreenChangeListener.java │ │ │ ├── ScreenContext.java │ │ │ ├── ScreenDimensions.java │ │ │ ├── ScreenPacker.java │ │ │ ├── ScreenPosition.java │ │ │ ├── ScreenWatcher.java │ │ │ └── TSOCommandListener.java │ │ │ ├── extended │ │ │ ├── AbstractExtendedCommand.java │ │ │ ├── BindCommand.java │ │ │ ├── CommandHeader.java │ │ │ ├── LogicalUnit.java │ │ │ ├── ResponseCommand.java │ │ │ ├── TN3270ExtendedCommand.java │ │ │ └── UnbindCommand.java │ │ │ ├── filetransfer │ │ │ ├── ContentsRecord.java │ │ │ ├── DataRecord.java │ │ │ ├── DownloadDialog.java │ │ │ ├── ErrorRecord.java │ │ │ ├── FileTransferInboundSF.java │ │ │ ├── FileTransferOutboundSF.java │ │ │ ├── FileTransferSF.java │ │ │ ├── IndFileCommand.java │ │ │ ├── RecordNumber.java │ │ │ ├── RecordSize.java │ │ │ ├── Transfer.java │ │ │ ├── TransferDialog.java │ │ │ ├── TransferListener.java │ │ │ ├── TransferManager.java │ │ │ ├── TransferMenu.java │ │ │ ├── TransferRecord.java │ │ │ └── UploadDialog.java │ │ │ ├── orders │ │ │ ├── BufferAddress.java │ │ │ ├── BufferAddressSource.java │ │ │ ├── EraseUnprotectedToAddressOrder.java │ │ │ ├── FormatControlOrder.java │ │ │ ├── GraphicsEscapeOrder.java │ │ │ ├── InsertCursorOrder.java │ │ │ ├── ModifyFieldOrder.java │ │ │ ├── Order.java │ │ │ ├── ProgramTabOrder.java │ │ │ ├── RepeatToAddressOrder.java │ │ │ ├── SetAttributeOrder.java │ │ │ ├── SetBufferAddressOrder.java │ │ │ ├── StartFieldExtendedOrder.java │ │ │ ├── StartFieldOrder.java │ │ │ └── TextOrder.java │ │ │ ├── plugins │ │ │ ├── DefaultPlugin.java │ │ │ ├── Plugin.java │ │ │ ├── PluginData.java │ │ │ ├── PluginField.java │ │ │ ├── PluginsStage.java │ │ │ └── ScreenLocation.java │ │ │ ├── replyfield │ │ │ ├── AlphanumericPartitions.java │ │ │ ├── AuxilliaryDevices.java │ │ │ ├── CharacterSets.java │ │ │ ├── Color.java │ │ │ ├── DefaultReply.java │ │ │ ├── DistributedDataManagement.java │ │ │ ├── Highlight.java │ │ │ ├── ImplicitPartition.java │ │ │ ├── OEMAuxilliaryDevice.java │ │ │ ├── QueryReplyField.java │ │ │ ├── RPQNames.java │ │ │ ├── ReplyModes.java │ │ │ ├── Segment.java │ │ │ ├── Summary.java │ │ │ ├── Transparency.java │ │ │ └── UsableArea.java │ │ │ ├── session │ │ │ ├── Session.java │ │ │ ├── SessionReader.java │ │ │ ├── SessionRecord.java │ │ │ └── SessionTable.java │ │ │ ├── streams │ │ │ ├── BufferListener.java │ │ │ ├── MainframeServer.java │ │ │ ├── SpyServer.java │ │ │ ├── TelnetListener.java │ │ │ ├── TelnetSocket.java │ │ │ ├── TelnetState.java │ │ │ ├── TelnetStateListener.java │ │ │ └── TerminalServer.java │ │ │ ├── structuredfields │ │ │ ├── DefaultStructuredField.java │ │ │ ├── EraseResetSF.java │ │ │ ├── Outbound3270DS.java │ │ │ ├── QueryReplySF.java │ │ │ ├── ReadPartitionSF.java │ │ │ ├── SetReplyModeSF.java │ │ │ └── StructuredField.java │ │ │ ├── telnet │ │ │ ├── TN3270ExtendedSubcommand.java │ │ │ ├── TelnetCommand.java │ │ │ ├── TelnetCommandProcessor.java │ │ │ ├── TelnetProcessor.java │ │ │ ├── TelnetSubcommand.java │ │ │ └── TerminalTypeSubcommand.java │ │ │ └── utilities │ │ │ ├── DefaultTable.java │ │ │ ├── Dm3270Utility.java │ │ │ ├── FileSaver.java │ │ │ ├── GuiFactory.java │ │ │ ├── ISite.java │ │ │ ├── PreferencesStage.java │ │ │ ├── Site.java │ │ │ └── WindowSaver.java │ │ └── org │ │ └── xframium │ │ └── terminal │ │ └── driver │ │ ├── Dm3270Console.java │ │ ├── Dm3270Context.java │ │ ├── Tn3270SpecialKeyCodes.java │ │ ├── Tn3270TerminalDriver.java │ │ ├── screen │ │ └── model │ │ │ ├── Action.java │ │ │ ├── Application.java │ │ │ ├── Field.java │ │ │ ├── Link.java │ │ │ ├── Location.java │ │ │ ├── ObjectFactory.java │ │ │ ├── RegistryRoot.java │ │ │ ├── Screen.java │ │ │ ├── package-info.java │ │ │ └── xsd │ │ │ └── terminal-screen-model.xsd │ │ └── util │ │ ├── SceneRobot.java │ │ └── Utilities.java │ └── test │ ├── java │ └── org │ │ └── xframium │ │ └── terminal │ │ └── driver │ │ ├── AppTest.java │ │ └── JXpathTest.java │ └── resources │ ├── TestApp.xml │ └── test.properties ├── testing ├── .gitignore ├── .project ├── applicationRegistry.xml ├── data │ └── testData.xml ├── deviceRegistry.xml ├── driverConfig-CI.xml ├── driverConfig.xml ├── driverConfig2.xml ├── driverConfigMCP2.xml ├── functions │ ├── functions-CIBC.xml │ ├── functions-xTest.xml │ └── xTest │ │ ├── Report Test Success.xml │ │ ├── andSet.xml │ │ ├── callDataChange.xml │ │ ├── checkData.xml │ │ ├── checkData2.xml │ │ ├── error function.xml │ │ ├── kw-alert.xml │ │ ├── kw-align.xml │ │ ├── kw-attribute.xml │ │ ├── kw-browser.xml │ │ ├── kw-cache.xml │ │ ├── kw-call.xml │ │ ├── kw-checkcolor.xml │ │ ├── kw-checkcontrast.xml │ │ ├── kw-click.xml │ │ ├── kw-compare.xml │ │ ├── kw-compare2.xml │ │ ├── kw-dumpstate.xml │ │ ├── kw-else.xml │ │ ├── kw-execjs.xml │ │ ├── kw-execws.xml │ │ ├── kw-exists.xml │ │ ├── kw-flow.xml │ │ ├── kw-focus.xml │ │ ├── kw-get.xml │ │ ├── kw-loop.xml │ │ ├── kw-math.xml │ │ ├── kw-mouse.xml │ │ ├── kw-navigate.xml │ │ ├── kw-operator.xml │ │ ├── kw-random.xml │ │ ├── kw-report.xml │ │ ├── kw-set.xml │ │ ├── kw-sql.xml │ │ ├── kw-string.xml │ │ ├── kw-visible.xml │ │ ├── kw-visual.xml │ │ ├── kw-wait.xml │ │ ├── kw-waitfor.xml │ │ ├── kw-window.xml │ │ ├── orSet.xml │ │ ├── setValue.xml │ │ ├── setValue2.xml │ │ ├── setValueFromElement.xml │ │ ├── setValueFromNumericIndex.xml │ │ └── setValueWithBreak.xml ├── html │ ├── testing.html │ └── testing2.html ├── objectRepository │ ├── synthetics │ │ ├── New Test Suite │ │ │ ├── Google Home │ │ │ │ └── Results │ │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ │ └── wikipedia │ │ │ │ └── home │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ └── xTest │ │ │ ├── Microsoft │ │ │ └── home │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ │ ├── Wiki │ │ │ ├── Article │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ │ ├── English Home │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ │ ├── German Home │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ │ └── Home │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ │ ├── xTest │ │ │ ├── Home2 │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ │ ├── eBaums │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ │ ├── home │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ │ └── page two │ │ │ │ ├── Firefox Windows 8.1 firefox 46.png │ │ │ │ └── Firefox Windows 8.1 firefox 46.xml │ │ │ └── xf │ │ │ └── home │ │ │ ├── Android Chrome.png │ │ │ └── Android Chrome.xml │ └── xTest │ │ ├── NFCU │ │ ├── page-Failed Login.xml │ │ ├── page-Home.xml │ │ └── site-NFCU.xml │ │ ├── Settings │ │ ├── page-Date and Time.xml │ │ ├── page-General.xml │ │ ├── page-Home.xml │ │ ├── page-Safari.xml │ │ └── site-Settings.xml │ │ ├── objectRepository.xml │ │ ├── xF_Native │ │ ├── page-xF-Application Notifications.xml │ │ ├── page-xF-Cellular.xml │ │ ├── page-xF-Device Management.xml │ │ ├── page-xF-General.xml │ │ ├── page-xF_Location.xml │ │ ├── page-xF_Notification.xml │ │ ├── page-xF_Notifications.xml │ │ ├── page-xF_Settings.xml │ │ ├── page-xF_Wi-Fi.xml │ │ └── site-xF_Native.xml │ │ └── xTest │ │ ├── page-home.xml │ │ ├── page-page two.xml │ │ └── site-xTest.xml ├── pageData │ ├── pageData.xlsx │ └── pageData.xml ├── tests │ ├── tests-CIBC.xml │ ├── tests-xTest.xml │ └── xTest │ │ ├── Accessibility Test.xml │ │ ├── Alert Test.xml │ │ ├── Align Test.xml │ │ ├── Attribute Test.xml │ │ ├── Browser Test.xml │ │ ├── Cache Test.xml │ │ ├── Call Test.xml │ │ ├── Checkbox Test.xml │ │ ├── Click Test.xml │ │ ├── Compare Test.xml │ │ ├── Comparison Test.xml │ │ ├── ERROR Test 2.xml │ │ ├── ERROR Test.xml │ │ ├── Else Test.xml │ │ ├── Exists Test.xml │ │ ├── Flow Tests.xml │ │ ├── Focus Test.xml │ │ ├── GET Value Test.xml │ │ ├── JS Test.xml │ │ ├── LEGACY Compare Test.xml │ │ ├── Loop Test.xml │ │ ├── Math Test.xml │ │ ├── Mouse Test.xml │ │ ├── NFCU Login.xml │ │ ├── Navigate Test.xml │ │ ├── Operator Test.xml │ │ ├── Perfecto SET Test.xml │ │ ├── Random Test.xml │ │ ├── Report Test.xml │ │ ├── SET Test.xml │ │ ├── SQL Test.xml │ │ ├── State Test.xml │ │ ├── String Test.xml │ │ ├── Test.xml │ │ ├── Verify Color Test.xml │ │ ├── Verify Contrast Test.xml │ │ ├── Visible Test.xml │ │ ├── Visual Test.xml │ │ ├── Wait For Test.xml │ │ ├── Wait Test.xml │ │ ├── WebService Test.xml │ │ ├── Window Keyword.xml │ │ ├── xFramium 2nd Device.xml │ │ ├── xFramium Complex Version Test.xml │ │ ├── xFramium Dump State Historical Test.xml │ │ ├── xFramium Dump State Test.xml │ │ ├── xFramium Flow Control.xml │ │ ├── xFramium GRID dumpstate.xml │ │ ├── xFramium General KeyWord Test.xml │ │ ├── xFramium Module Test.xml │ │ ├── xFramium NATIVE Airplane.xml │ │ ├── xFramium NATIVE Data.xml │ │ ├── xFramium NATIVE Date-Time.xml │ │ ├── xFramium NATIVE Location.xml │ │ ├── xFramium NATIVE Notifications Android.xml │ │ ├── xFramium NATIVE Notifications.xml │ │ ├── xFramium NATIVE Trust.xml │ │ ├── xFramium NATIVE Wifi.xml │ │ ├── xFramium Natural Descriptors.xml │ │ ├── xFramium OS Step Filter.xml │ │ ├── xFramium Page Element Context.xml │ │ ├── xFramium Perfecto VISUAL Keyword Tests.xml │ │ ├── xFramium REGEX.xml │ │ ├── xFramium STEP Complex Version Test.xml │ │ └── xFramium device tag Step Filter.xml └── ws-payload.xml ├── xframium-driver-1.0.6.zip ├── xframium-testing-java ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.m2e.core.prefs ├── pom.xml ├── resources │ ├── .gitignore │ ├── applicationRegistry.xml │ ├── deviceRegistry.out.xml │ ├── deviceRegistry.xml │ ├── driverConfig.xml │ ├── driverConfigBDD.xml │ ├── page-home.xml │ ├── pageData.xml │ └── test.feature └── src │ └── org │ └── xframium │ └── examples │ └── java │ ├── WebTestDriver.java │ ├── page │ ├── WebHomePage.java │ └── spi │ │ └── WebHomePageImpl.java │ └── test │ └── WebHome.java └── xframium.jks /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | git_xframium-java 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /alm/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /alm/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /target/ 3 | -------------------------------------------------------------------------------- /alm/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | alm 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /alm/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /alm/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /driver/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /target/ 3 | /test-output/ 4 | /debug.log 5 | /fordPass-out/ 6 | /jnlp/ 7 | /MANIFEST.MF 8 | /lincolnWay-out/ 9 | /test/ 10 | /mll/ 11 | /derby.log 12 | -------------------------------------------------------------------------------- /driver/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | xframium-drivera 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /driver/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate 4 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 5 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 6 | org.eclipse.jdt.core.compiler.compliance=1.7 7 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 8 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 9 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 10 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 13 | org.eclipse.jdt.core.compiler.source=1.7 14 | -------------------------------------------------------------------------------- /driver/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/handler/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.console.http.handler; -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/handler/spi/KillSwitch.java: -------------------------------------------------------------------------------- 1 | package org.xframium.console.http.handler.spi; 2 | 3 | import org.xframium.console.http.handler.ECHandler; 4 | import com.sun.net.httpserver.HttpExchange; 5 | 6 | @SuppressWarnings("restriction") 7 | public class KillSwitch extends ECHandler { 8 | 9 | @Override 10 | protected byte[] _handle(HttpExchange httpExchange) 11 | { 12 | log.warn( "Received Kill" ); 13 | 14 | System.exit( 0 ); 15 | return null; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/handler/spi/OpenHTML.java: -------------------------------------------------------------------------------- 1 | package org.xframium.console.http.handler.spi; 2 | 3 | import java.awt.Desktop; 4 | import java.net.URI; 5 | import java.util.Map; 6 | import org.xframium.console.http.handler.ECHandler; 7 | import com.sun.net.httpserver.HttpExchange; 8 | 9 | @SuppressWarnings("restriction") 10 | public class OpenHTML extends ECHandler 11 | { 12 | 13 | @Override 14 | protected byte[] _handle(HttpExchange httpExchange) 15 | { 16 | try 17 | { 18 | Map queryMap = queryToMap( httpExchange.getRequestURI().getQuery() ); 19 | 20 | String fileName = queryMap.get( "fileName" ); 21 | 22 | Desktop.getDesktop().browse( new URI( "file:///" + fileName.replace( " ", "%20" ) ) ); 23 | return "ok".getBytes(); 24 | } 25 | catch( Exception e ) 26 | { 27 | e.printStackTrace(); 28 | return e.getMessage().getBytes(); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/handler/spi/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.console.http.handler.spi; -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/css/application.css: -------------------------------------------------------------------------------- 1 | /* global body padding */ 2 | body { 3 | padding-top: 20px; 4 | padding-bottom: 20px; 5 | } 6 | 7 | @media (min-width: 768px) { 8 | body { 9 | padding-top: 50px; 10 | padding-bottom: 50px; 11 | } 12 | } 13 | 14 | 15 | /* global spacing overrides */ 16 | h1, h2, h3, h4, h5, h6, 17 | .h1, .h2, .h3, .h4, .h5, .h6 { 18 | margin-top: 0; 19 | } 20 | hr { 21 | margin-top: 30px; 22 | margin-bottom: 30px; 23 | } 24 | 25 | .navbar-fixed-top, 26 | .navbar-static-top { 27 | border-bottom: 0; 28 | } 29 | -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/css/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.console.http.html.css; -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/images/BLOCKED.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/driver/src/org/xframium/console/http/html/images/BLOCKED.png -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/images/NEW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/driver/src/org/xframium/console/http/html/images/NEW.png -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/images/RUNNABLE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/driver/src/org/xframium/console/http/html/images/RUNNABLE.png -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/images/TERMINATED.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/driver/src/org/xframium/console/http/html/images/TERMINATED.png -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/images/TIMED_WAITING.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/driver/src/org/xframium/console/http/html/images/TIMED_WAITING.png -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/images/WAITING.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/driver/src/org/xframium/console/http/html/images/WAITING.png -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/images/mll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/driver/src/org/xframium/console/http/html/images/mll.png -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/images/xframium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/driver/src/org/xframium/console/http/html/images/xframium.png -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/js/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.console.http.html.js; -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/html/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.console.http.html; -------------------------------------------------------------------------------- /driver/src/org/xframium/console/http/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.console.http; -------------------------------------------------------------------------------- /driver/src/org/xframium/console/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.console; -------------------------------------------------------------------------------- /driver/src/org/xframium/driver/SuiteListener.java: -------------------------------------------------------------------------------- 1 | package org.xframium.driver; 2 | 3 | import java.io.File; 4 | 5 | public interface SuiteListener 6 | { 7 | public void beforeSuite( String suiteName, File fileName ); 8 | public void afterSuite( String suiteName, File fileName, File outputFolder ); 9 | } 10 | -------------------------------------------------------------------------------- /driver/src/org/xframium/driver/xsd/package-info.java: -------------------------------------------------------------------------------- 1 | // 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 3 | // See http://java.sun.com/xml/jaxb 4 | // Any modifications to this file will be lost upon recompilation of the source schema. 5 | // Generated on: 2018.08.22 at 07:54:58 AM EDT 6 | // 7 | 8 | @javax.xml.bind.annotation.XmlSchema(namespace = "http://www.xframium.org/xFramiumDriver", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 9 | package org.xframium.driver.xsd; 10 | -------------------------------------------------------------------------------- /extensions/xframium-perfecto/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /extensions/xframium-perfecto/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /target/ 3 | -------------------------------------------------------------------------------- /extensions/xframium-perfecto/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | xframium-perfecto 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /extensions/xframium-perfecto/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 3 | org.eclipse.jdt.core.compiler.compliance=1.7 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.7 6 | -------------------------------------------------------------------------------- /extensions/xframium-perfecto/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /framework/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /framework/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /target/ 3 | -------------------------------------------------------------------------------- /framework/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate 4 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 5 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 6 | org.eclipse.jdt.core.compiler.compliance=1.8 7 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 8 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 9 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 10 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 13 | org.eclipse.jdt.core.compiler.release=disabled 14 | org.eclipse.jdt.core.compiler.source=1.8 15 | -------------------------------------------------------------------------------- /framework/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /framework/src/org/xframium/application/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Application registry providers and definitions. The Application Registry allows for all application details required for testing to be stored in a single place for easy access. An application is defined as a native mobile application installed on a mobile device or a website access via a mobile device or desktop browser. 3 | * 4 | * @since 1.0.0 5 | */ 6 | package org.xframium.application; -------------------------------------------------------------------------------- /framework/src/org/xframium/application/sql/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * SQL table definitions for Application Registry schema 3 | * 4 | * @since 1.0.1 5 | */ 6 | package org.xframium.application.sql; -------------------------------------------------------------------------------- /framework/src/org/xframium/application/sql/sample-inserts.sql: -------------------------------------------------------------------------------- 1 | insert into PERFECTO_APPLICATIONS( NAME, APP_PACKAGE, BUNDLE_ID, URL, IOS_INSTALL, ANDROID_INSTALL ) 2 | values ( '', null, null, null, null, null ); 3 | 4 | insert into PERFECTO_APP_DEV_CAPABILITIES( APP_NAME, NAME, CLASS, VALUE ) 5 | values ( '', '', '', '' ); 6 | 7 | -------------------------------------------------------------------------------- /framework/src/org/xframium/application/sql/tables.sql: -------------------------------------------------------------------------------- 1 | drop table APPLICATIONS; 2 | drop table APP_DEV_CAPABILITIES; 3 | 4 | create table APPLICATIONS 5 | ( 6 | NAME VARCHAR(50) NOT NULL, 7 | APP_PACKAGE VARCHAR(100), 8 | BUNDLE_ID VARCHAR(100), 9 | URL VARCHAR(200), 10 | IOS_INSTALL VARCHAR(200), 11 | ANDROID_INSTALL VARCHAR(200) 12 | ); 13 | 14 | create table APP_DEV_CAPABILITIES 15 | ( 16 | APP_NAME VARCHAR(50) NOT NULL, 17 | NAME VARCHAR(50) NOT NULL, 18 | CLASS VARCHAR(50) DEFAULT 'STRING' NOT NULL, 19 | VALUE VARCHAR(1000) NOT NULL, 20 | CONSTRAINT CHK_CLASS_2 CHECK (CLASS IN ( 'BOOLEAN', 'OBJECT', 'PLATFORM', 'STRING' )) 21 | ); 22 | -------------------------------------------------------------------------------- /framework/src/org/xframium/application/xsd/package-info.java: -------------------------------------------------------------------------------- 1 | // 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 3 | // See http://java.sun.com/xml/jaxb 4 | // Any modifications to this file will be lost upon recompilation of the source schema. 5 | // Generated on: 2018.07.31 at 07:52:22 AM EDT 6 | // 7 | 8 | @javax.xml.bind.annotation.XmlSchema(namespace = "http://www.xframium.org/applicationRegistry", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 9 | package org.xframium.application.xsd; 10 | -------------------------------------------------------------------------------- /framework/src/org/xframium/artifact/Artifact.java: -------------------------------------------------------------------------------- 1 | package org.xframium.artifact; 2 | 3 | import java.io.File; 4 | import org.xframium.device.factory.DeviceWebDriver; 5 | 6 | public interface Artifact 7 | { 8 | public static final String URL = "ARTIFACT_URL"; 9 | File generateArtifact( String rootFolder, DeviceWebDriver webDriver, String xFID ); 10 | } 11 | -------------------------------------------------------------------------------- /framework/src/org/xframium/artifact/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Artifact productions integration points 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.artifact; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/artifact/spi/CSVDataArtifact.java: -------------------------------------------------------------------------------- 1 | package org.xframium.artifact.spi; 2 | 3 | import java.io.File; 4 | import org.xframium.artifact.AbstractArtifact; 5 | import org.xframium.artifact.ArtifactType; 6 | import org.xframium.device.factory.DeviceWebDriver; 7 | 8 | public class CSVDataArtifact extends AbstractArtifact 9 | { 10 | private static final String FILE_NAME = "outputData.csv"; 11 | public CSVDataArtifact() 12 | { 13 | setArtifactType( ArtifactType.ADD_TO_CSV.name() ); 14 | } 15 | 16 | @Override 17 | protected File _generateArtifact( File rootFolder, DeviceWebDriver webDriver, String xFID ) 18 | { 19 | 20 | if ( webDriver.getExecutionContext() == null ) 21 | return null; 22 | 23 | return writeToDisk( rootFolder, FILE_NAME, webDriver.getExecutionContext().getCSVReport().getBytes() ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /framework/src/org/xframium/artifact/spi/ConsoleLogArtifact.java: -------------------------------------------------------------------------------- 1 | package org.xframium.artifact.spi; 2 | 3 | import java.io.File; 4 | import org.xframium.artifact.AbstractArtifact; 5 | import org.xframium.artifact.ArtifactType; 6 | import org.xframium.device.factory.DeviceWebDriver; 7 | 8 | public class ConsoleLogArtifact extends AbstractArtifact 9 | { 10 | private static final String FILE_NAME = "console.txt"; 11 | public ConsoleLogArtifact() 12 | { 13 | setArtifactType( ArtifactType.CONSOLE_LOG.name() ); 14 | } 15 | 16 | @Override 17 | protected File _generateArtifact( File rootFolder, DeviceWebDriver webDriver, String xFID ) 18 | { 19 | return writeToDisk( rootFolder, FILE_NAME, webDriver.getLog().getBytes() ); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /framework/src/org/xframium/artifact/spi/DeviceLogArtifact.java: -------------------------------------------------------------------------------- 1 | package org.xframium.artifact.spi; 2 | 3 | import java.io.File; 4 | import org.xframium.artifact.AbstractArtifact; 5 | import org.xframium.artifact.ArtifactType; 6 | import org.xframium.device.factory.DeviceWebDriver; 7 | 8 | public class DeviceLogArtifact extends AbstractArtifact 9 | { 10 | private static final String FILE_NAME = "device.txt"; 11 | public DeviceLogArtifact() 12 | { 13 | setArtifactType( ArtifactType.DEVICE_LOG.name() ); 14 | } 15 | 16 | @Override 17 | protected File _generateArtifact( File rootFolder, DeviceWebDriver webDriver, String xFID ) 18 | { 19 | 20 | String logData = webDriver.getCloud().getCloudActionProvider().getLog( webDriver ); 21 | if ( logData != null ) 22 | return writeToDisk( rootFolder, FILE_NAME, logData.getBytes() ); 23 | else 24 | return null; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /framework/src/org/xframium/artifact/spi/VitalsArtifact.java: -------------------------------------------------------------------------------- 1 | package org.xframium.artifact.spi; 2 | 3 | import java.io.File; 4 | import org.xframium.artifact.AbstractArtifact; 5 | import org.xframium.artifact.ArtifactType; 6 | import org.xframium.device.factory.DeviceWebDriver; 7 | 8 | public class VitalsArtifact extends AbstractArtifact 9 | { 10 | private static final String FILE_NAME = "statistics.csv"; 11 | public VitalsArtifact() 12 | { 13 | setArtifactType( ArtifactType.STATISTICS.name() ); 14 | } 15 | 16 | @Override 17 | protected File _generateArtifact( File rootFolder, DeviceWebDriver webDriver, String xFID ) 18 | { 19 | return writeToDisk( rootFolder, FILE_NAME, webDriver.getCloud().getCloudActionProvider().getVitals( webDriver ).getBytes() ); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /framework/src/org/xframium/artifact/spi/XMLSourceArtifact.java: -------------------------------------------------------------------------------- 1 | package org.xframium.artifact.spi; 2 | 3 | import java.io.File; 4 | import org.xframium.artifact.AbstractArtifact; 5 | import org.xframium.artifact.Artifact; 6 | import org.xframium.artifact.ArtifactType; 7 | import org.xframium.device.factory.DeviceWebDriver; 8 | 9 | public class XMLSourceArtifact extends AbstractArtifact implements Artifact 10 | { 11 | private static final String FILE_NAME = "failureDOM.xml"; 12 | public XMLSourceArtifact() 13 | { 14 | setArtifactType( ArtifactType.FAILURE_SOURCE.name() ); 15 | } 16 | 17 | @Override 18 | protected File _generateArtifact( File rootFolder, DeviceWebDriver webDriver, String xFID ) 19 | { 20 | return writeToDisk( rootFolder, FILE_NAME, webDriver.getPageSource().getBytes() ); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /framework/src/org/xframium/browser/capabilities/BrowserCapabilityFactory.java: -------------------------------------------------------------------------------- 1 | package org.xframium.browser.capabilities; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | import org.openqa.selenium.remote.DesiredCapabilities; 7 | 8 | /** 9 | * @author user 10 | * Interface for creating browser specific options. 11 | */ 12 | public interface BrowserCapabilityFactory { 13 | 14 | /** 15 | * Interface method for creating browser options. 16 | * @param DesiredCapabilities - desired capabilities object dc 17 | * @param Map > - browser specific options 18 | * @return DesiredCapabilities 19 | */ 20 | public DesiredCapabilities createBrowserOptions(DesiredCapabilities dc, Map options); 21 | 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /framework/src/org/xframium/container/ApplicationContainer.java: -------------------------------------------------------------------------------- 1 | package org.xframium.container; 2 | 3 | import org.xframium.application.ApplicationDescriptor; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | public class ApplicationContainer 9 | { 10 | private String applicationName; 11 | private List appList = new ArrayList( 10 ); 12 | 13 | public String getApplicationName() 14 | { 15 | return applicationName; 16 | } 17 | public void setApplicationName( String applicationName ) 18 | { 19 | this.applicationName = applicationName; 20 | } 21 | public List getAppList() 22 | { 23 | return appList; 24 | } 25 | public void setAppList( List appList ) 26 | { 27 | this.appList = appList; 28 | } 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /framework/src/org/xframium/container/CloudContainer.java: -------------------------------------------------------------------------------- 1 | package org.xframium.container; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | import org.xframium.device.cloud.CloudDescriptor; 6 | 7 | public class CloudContainer 8 | { 9 | private String cloudName; 10 | private List cloudList = new ArrayList( 10 ); 11 | 12 | public String getCloudName() 13 | { 14 | return cloudName; 15 | } 16 | public void setCloudName( String cloudName ) 17 | { 18 | this.cloudName = cloudName; 19 | } 20 | public List getCloudList() 21 | { 22 | return cloudList; 23 | } 24 | public void setCloudList( List cloudList ) 25 | { 26 | this.cloudList = cloudList; 27 | } 28 | 29 | 30 | 31 | 32 | } 33 | -------------------------------------------------------------------------------- /framework/src/org/xframium/container/ContextContainer.java: -------------------------------------------------------------------------------- 1 | package org.xframium.container; 2 | 3 | public class ContextContainer 4 | { 5 | private String name; 6 | 7 | public ContextContainer( String name ) 8 | { 9 | super(); 10 | this.name = name; 11 | } 12 | 13 | public String getName() 14 | { 15 | return name; 16 | } 17 | 18 | public void setName( String name ) 19 | { 20 | this.name = name; 21 | } 22 | 23 | public String toString() 24 | { 25 | return name; 26 | } 27 | 28 | 29 | 30 | } 31 | -------------------------------------------------------------------------------- /framework/src/org/xframium/container/FavoriteContainer.java: -------------------------------------------------------------------------------- 1 | package org.xframium.container; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class FavoriteContainer 7 | { 8 | private List favoriteList = new ArrayList( 10 ); 9 | 10 | public FavoriteContainer( String favorites ) 11 | { 12 | if ( favorites != null && favorites.trim().length() > 0 ) 13 | { 14 | String[] favoriteArray = favorites.split( "," ); 15 | 16 | for ( String fav : favoriteArray ) 17 | { 18 | favoriteList.add( fav ); 19 | } 20 | } 21 | } 22 | 23 | public void addFavorite( String keyword ) 24 | { 25 | favoriteList.add( keyword ); 26 | } 27 | 28 | public List getFavorites() 29 | { 30 | return favoriteList; 31 | } 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /framework/src/org/xframium/content/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * General content management engine for replaceable content and resource files 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.content; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/content/provider/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Content management enginer data providers 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.content.provider; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/content/provider/sql/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Implementations of the Artifact production API 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.content.provider.sql; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/content/provider/sql/sample-insert.sql: -------------------------------------------------------------------------------- 1 | insert into PERFECTO_CONTENT( KEY_NAME, VALUE, OFFSET ) 2 | values ( '', '', 0 ); 3 | -------------------------------------------------------------------------------- /framework/src/org/xframium/content/provider/sql/table.sql: -------------------------------------------------------------------------------- 1 | drop table PERFECTO_CONTENT; 2 | 3 | create table PERFECTO_CONTENT 4 | ( 5 | KEY_NAME VARCHAR(100) NOT NULL, 6 | VALUE VARCHAR(100) NOT NULL, 7 | OFFSET INTEGER NOT NULL 8 | ); 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/DeviceCap.java: -------------------------------------------------------------------------------- 1 | package org.xframium.device; 2 | 3 | public class DeviceCap 4 | { 5 | private String name; 6 | private Object value; 7 | private String type; 8 | 9 | public DeviceCap( String name, Object value, String type ) 10 | { 11 | super(); 12 | this.name = name; 13 | this.value = value; 14 | this.type = type; 15 | } 16 | 17 | public String getName() 18 | { 19 | return name; 20 | } 21 | public void setName( String name ) 22 | { 23 | this.name = name; 24 | } 25 | public Object getValue() 26 | { 27 | return value; 28 | } 29 | public void setValue( Object value ) 30 | { 31 | this.value = value; 32 | } 33 | public String getType() 34 | { 35 | return type; 36 | } 37 | public void setType( String type ) 38 | { 39 | this.type = type; 40 | } 41 | 42 | 43 | } 44 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/capability/AbstractCapabilityBridge.java: -------------------------------------------------------------------------------- 1 | package org.xframium.device.capability; 2 | 3 | import org.apache.commons.logging.Log; 4 | import org.apache.commons.logging.LogFactory; 5 | import org.openqa.selenium.remote.DesiredCapabilities; 6 | 7 | public abstract class AbstractCapabilityBridge implements CapabilityBridge { 8 | 9 | protected Log log = LogFactory.getLog( CapabilityBridge.class ); 10 | 11 | @Override 12 | public void addCapabilities(DesiredCapabilities dC) 13 | { 14 | if ( log.isInfoEnabled() ) 15 | log.info( "Adding capabilities via " + getClass().getName() ); 16 | _addCapabilities( dC ); 17 | 18 | if ( log.isDebugEnabled() ) 19 | log.debug( dC.asMap().toString() ); 20 | } 21 | 22 | protected abstract void _addCapabilities( DesiredCapabilities dC ); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/capability/CapabilityBridge.java: -------------------------------------------------------------------------------- 1 | package org.xframium.device.capability; 2 | 3 | import org.openqa.selenium.remote.DesiredCapabilities; 4 | 5 | public interface CapabilityBridge 6 | { 7 | public void addCapabilities( DesiredCapabilities dC ); 8 | } 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/capability/ExampleCapabilityBridge.java: -------------------------------------------------------------------------------- 1 | package org.xframium.device.capability; 2 | 3 | import org.openqa.selenium.remote.DesiredCapabilities; 4 | import org.xframium.Initializable; 5 | 6 | public class ExampleCapabilityBridge extends AbstractCapabilityBridge 7 | { 8 | @Override 9 | protected void _addCapabilities(DesiredCapabilities dC) 10 | { 11 | // 12 | //Set an example capability 13 | // 14 | dC.setCapability( "xFramium Version", Initializable.VERSION ); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/cloud/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * The root of the cloud registry. The Cloud registry controls access to our various cloud instances. All access information and credentials are stored here for use by the system. A cloud is defined as a remote set of resource and can consist of a commercial cloud provider as well as a local Selenium based grid. 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.cloud; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/cloud/sql/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * SQL scripts for creating database schemas for the cloud registry 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.cloud.sql; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/cloud/sql/sample-insert.sql: -------------------------------------------------------------------------------- 1 | insert into PERFECTO_CLOUDS ( NAME, USER_NAME, PASSWORD, HOST_NAME, 2 | PROXY_HOST, PROXY_PORT, DESCRIPTION, GRID_INSTANCE ) 3 | values ( '', '', '', '', '', '', '', '' ); 4 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/cloud/sql/table.sql: -------------------------------------------------------------------------------- 1 | drop table PERFECTO_CLOUDS; 2 | 3 | create table PERFECTO_CLOUDS 4 | ( 5 | NAME VARCHAR(50) NOT NULL, 6 | USER_NAME VARCHAR(100) NOT NULL, 7 | PASSWORD VARCHAR(100) NOT NULL, 8 | HOST_NAME VARCHAR(100) NOT NULL, 9 | PROXY_HOST VARCHAR(100), 10 | PROXY_PORT VARCHAR(10), 11 | DESCRIPTION VARCHAR(200), 12 | GRID_INSTANCE VARCHAR(200) 13 | ); 14 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/cloud/xsd/package-info.java: -------------------------------------------------------------------------------- 1 | // 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 3 | // See http://java.sun.com/xml/jaxb 4 | // Any modifications to this file will be lost upon recompilation of the source schema. 5 | // Generated on: 2018.02.15 at 07:16:41 AM EST 6 | // 7 | 8 | @javax.xml.bind.annotation.XmlSchema(namespace = "http://www.xframium.org/cloudRegistry", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 9 | package org.xframium.device.cloud.xsd; 10 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/comparator/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Device ordering and comparison implementations 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.comparator; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/data/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Device data providers select devices based off of some criteria. 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.data; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/data/perfectoMobile/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * PErfecto device selections 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.data.perfectoMobile; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/data/sql/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * SQL scehma definitions for a database backed device data provider 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.data.sql; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/data/sql/sample-inserts.sql: -------------------------------------------------------------------------------- 1 | insert into PERFECTO_DEVICES ( NAME, ID, MANUFACTURER, MODEL, OS, OS_VERSION, BROWSER_NAME, BROWSER_VERSION, ACTIVE, AVAILABLE) 2 | values ( '', '', '', '', '', '', '', '', 'Y', 1 ); 3 | 4 | insert into PERFECTO_DEVICE_CAPABILITIES ( DEVICE_NAME, NAME, CLASS, VALUE ) 5 | values ( '', '', '', '' ); 6 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/data/sql/tables.sql: -------------------------------------------------------------------------------- 1 | drop table PERFECTO_DEVICES; 2 | drop table PERFECTO_DEVICE_CAPABILITIES; 3 | 4 | create table PERFECTO_DEVICES 5 | ( 6 | NAME VARCHAR(50) NOT NULL, 7 | ID VARCHAR(100), 8 | MANUFACTURER VARCHAR(100) NOT NULL, 9 | MODEL VARCHAR(100) NOT NULL, 10 | OS VARCHAR(100), 11 | OS_VERSION VARCHAR(10), 12 | BROWSER_NAME VARCHAR(100) , 13 | BROWSER_VERSION VARCHAR(10), 14 | ACTIVE VARCHAR(10) DEFAULT 'Y', 15 | AVAILABLE INTEGER DEFAULT 1, 16 | CONSTRAINT CHK_ACTIVE CHECK (ACTIVE IN ( 'Y', 'N' )) 17 | ); 18 | 19 | create table PERFECTO_DEVICE_CAPABILITIES 20 | ( 21 | DEVICE_NAME VARCHAR(50) NOT NULL, 22 | NAME VARCHAR(50) NOT NULL, 23 | CLASS VARCHAR(50) DEFAULT 'STRING' NOT NULL, 24 | VALUE VARCHAR(1000) NOT NULL, 25 | CONSTRAINT CHK_CLASS CHECK (CLASS IN ( 'BOOLEAN', 'OBJECT', 'PLATFORM', 'STRING' )) 26 | ); 27 | 28 | 29 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/data/xsd/package-info.java: -------------------------------------------------------------------------------- 1 | // 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 3 | // See http://java.sun.com/xml/jaxb 4 | // Any modifications to this file will be lost upon recompilation of the source schema. 5 | // Generated on: 2018.07.31 at 07:51:23 AM EDT 6 | // 7 | 8 | @javax.xml.bind.annotation.XmlSchema(namespace = "http://www.xframium.org/deviceRegistry", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 9 | package org.xframium.device.data.xsd; 10 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/factory/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Device factory API for managing and creating device factories 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.factory; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/factory/spi/.gitignore: -------------------------------------------------------------------------------- 1 | /WEBDriverFactory.java 2 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/factory/spi/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Implementations of the device factory 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.factory.spi; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/interrupt/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Device interrupts are used to simulate device actions during a test case 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.interrupt; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/keepAlive/ContextKeepAlive.java: -------------------------------------------------------------------------------- 1 | package org.xframium.device.keepAlive; 2 | 3 | import org.xframium.device.factory.DeviceWebDriver; 4 | 5 | public class ContextKeepAlive extends AbstractDeviceKeepAlive 6 | { 7 | 8 | @Override 9 | protected boolean _keepAlive( DeviceWebDriver webDriver ) 10 | { 11 | try 12 | { 13 | webDriver.getContext(); 14 | return true; 15 | } 16 | catch( Exception e ) 17 | { 18 | log.info( "Error exedcuting keep alive", e ); 19 | return false; 20 | } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/keepAlive/DeviceKeepAlive.java: -------------------------------------------------------------------------------- 1 | package org.xframium.device.keepAlive; 2 | 3 | import org.xframium.device.factory.DeviceWebDriver; 4 | 5 | public interface DeviceKeepAlive 6 | { 7 | public boolean keepAlive( DeviceWebDriver webDriver ); 8 | public int getPollTime(); 9 | public int getQuietTime(); 10 | public void setPollTime( int pollTime ); 11 | public void setQuietTime( int quietTime ); 12 | } 13 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/keepAlive/SnapshotKeepAlive.java: -------------------------------------------------------------------------------- 1 | package org.xframium.device.keepAlive; 2 | 3 | import org.openqa.selenium.OutputType; 4 | import org.xframium.device.factory.DeviceWebDriver; 5 | 6 | public class SnapshotKeepAlive extends AbstractDeviceKeepAlive 7 | { 8 | 9 | @Override 10 | protected boolean _keepAlive( DeviceWebDriver webDriver ) 11 | { 12 | try 13 | { 14 | webDriver.getScreenshotAs( OutputType.BYTES ); 15 | return true; 16 | } 17 | catch( Exception e ) 18 | { 19 | log.info( "Error exedcuting keep alive", e ); 20 | return false; 21 | } 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/logging/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Logging implementations 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.logging; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/ng/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * TestNG integration definitions 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.ng; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * SQL Statement definitions for content management schemas 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/device/property/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Property adapters allow for additional user defined property to be supplied to the test implementations 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.device.property; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/email/AbstractEmailProvider.java: -------------------------------------------------------------------------------- 1 | package org.xframium.email; 2 | 3 | import org.apache.commons.logging.Log; 4 | import org.apache.commons.logging.LogFactory; 5 | 6 | public abstract class AbstractEmailProvider implements EmailProvider 7 | { 8 | protected Log log = LogFactory.getLog( EmailProvider.class ); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /framework/src/org/xframium/email/EmailProvider.java: -------------------------------------------------------------------------------- 1 | package org.xframium.email; 2 | 3 | public interface EmailProvider 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/org/xframium/email/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.email; -------------------------------------------------------------------------------- /framework/src/org/xframium/email/receive/AbstractReceiveEmailProvider.java: -------------------------------------------------------------------------------- 1 | package org.xframium.email.receive; 2 | 3 | import java.util.Map; 4 | import javax.mail.Message; 5 | import org.xframium.email.AbstractEmailProvider; 6 | import org.xframium.email.receive.filter.MessageFilter; 7 | 8 | public abstract class AbstractReceiveEmailProvider extends AbstractEmailProvider implements ReceiveEmailProvider 9 | { 10 | public abstract MessageWrapper _getEmail( String hostName, MessageFilter[] messageFilters, Map propertyMap ); 11 | 12 | @Override 13 | public MessageWrapper getEmail( String hostName, MessageFilter[] messageFilters, Map propertyMap ) 14 | { 15 | if ( log.isInfoEnabled() ) 16 | log.info( "Attempting to retreive email from " + hostName ); 17 | return _getEmail( hostName, messageFilters, propertyMap ); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /framework/src/org/xframium/email/receive/ReceiveEmailProvider.java: -------------------------------------------------------------------------------- 1 | package org.xframium.email.receive; 2 | 3 | import java.util.Map; 4 | import javax.mail.Message; 5 | import org.xframium.email.receive.filter.MessageFilter; 6 | 7 | public interface ReceiveEmailProvider 8 | { 9 | public MessageWrapper getEmail( String hostName, MessageFilter[] messageFilters, Map propertyMap ); 10 | } 11 | -------------------------------------------------------------------------------- /framework/src/org/xframium/email/receive/filter/MessageFilter.java: -------------------------------------------------------------------------------- 1 | package org.xframium.email.receive.filter; 2 | 3 | import javax.mail.Message; 4 | 5 | public interface MessageFilter 6 | { 7 | public boolean acceptMessage( Message currentMessage ); 8 | } 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/email/receive/filter/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.email.receive.filter; -------------------------------------------------------------------------------- /framework/src/org/xframium/email/receive/filter/spi/FromMessageFilter.java: -------------------------------------------------------------------------------- 1 | package org.xframium.email.receive.filter.spi; 2 | 3 | import javax.mail.Message; 4 | import org.xframium.email.receive.filter.AbstractMessageFilter; 5 | 6 | public class FromMessageFilter extends AbstractMessageFilter 7 | { 8 | private String fromValue; 9 | 10 | public FromMessageFilter( String fromValue ) 11 | { 12 | this.fromValue = fromValue.trim(); 13 | } 14 | 15 | @Override 16 | public boolean _acceptMessage( Message currentMessage ) throws Exception 17 | { 18 | return currentMessage.getFrom()[ 0 ].toString().contains( fromValue ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /framework/src/org/xframium/email/receive/filter/spi/SubjectMessageFilter.java: -------------------------------------------------------------------------------- 1 | package org.xframium.email.receive.filter.spi; 2 | 3 | import javax.mail.Message; 4 | import org.xframium.email.receive.filter.AbstractMessageFilter; 5 | 6 | public class SubjectMessageFilter extends AbstractMessageFilter 7 | { 8 | private String subjectValue; 9 | 10 | public SubjectMessageFilter( String subjectValue ) 11 | { 12 | this.subjectValue = subjectValue; 13 | } 14 | 15 | @Override 16 | public boolean _acceptMessage( Message currentMessage ) throws Exception 17 | { 18 | return currentMessage.getSubject().matches( subjectValue ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /framework/src/org/xframium/email/receive/filter/spi/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.email.receive.filter.spi; -------------------------------------------------------------------------------- /framework/src/org/xframium/email/receive/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.email.receive; -------------------------------------------------------------------------------- /framework/src/org/xframium/email/receive/spi/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.email.receive.spi; -------------------------------------------------------------------------------- /framework/src/org/xframium/email/send/AbstractSendEmailProvider.java: -------------------------------------------------------------------------------- 1 | package org.xframium.email.send; 2 | 3 | import java.util.Map; 4 | import org.xframium.email.AbstractEmailProvider; 5 | 6 | public abstract class AbstractSendEmailProvider extends AbstractEmailProvider implements SendEmailProvider 7 | { 8 | 9 | public abstract boolean _sendEmail( String fromAddress, String[] toAddress, String subjectLine, String emailBody, Map propertyMap ); 10 | 11 | @Override 12 | public boolean sendEmail( String fromAddress, String[] toAddress, String subjectLine, String emailBody, Map propertyMap ) 13 | { 14 | if ( log.isInfoEnabled() ) 15 | log.info( "Sending email from " + fromAddress + " as " + subjectLine ); 16 | 17 | return _sendEmail( fromAddress, toAddress, subjectLine, emailBody, propertyMap ); 18 | } 19 | 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /framework/src/org/xframium/email/send/SendEmailProvider.java: -------------------------------------------------------------------------------- 1 | package org.xframium.email.send; 2 | 3 | import java.util.Map; 4 | import org.xframium.email.EmailProvider; 5 | 6 | public interface SendEmailProvider extends EmailProvider 7 | { 8 | public boolean sendEmail(String fromAddress, String[] toAddress, String subjectLine, String emailBody, Map propertyMap); 9 | } 10 | -------------------------------------------------------------------------------- /framework/src/org/xframium/email/send/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.email.send; -------------------------------------------------------------------------------- /framework/src/org/xframium/email/send/spi/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.email.send.spi; -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/BubbledFailureException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | public class BubbledFailureException extends XFramiumException 4 | { 5 | 6 | 7 | private static final long serialVersionUID = 5590632064136801352L; 8 | private Throwable rootException; 9 | 10 | public BubbledFailureException(Throwable rootException ) 11 | { 12 | super( ExceptionType.SCRIPT ); 13 | this.rootException = rootException; 14 | } 15 | 16 | 17 | 18 | @Override 19 | public String getMessage() 20 | { 21 | return rootException.getMessage(); 22 | } 23 | 24 | public Throwable getException() 25 | { 26 | return rootException; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/DataIdentificationException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | public class DataIdentificationException extends XFramiumException 4 | { 5 | 6 | /** 7 | * 8 | */ 9 | private static final long serialVersionUID = -1478754807884058923L; 10 | private String value; 11 | 12 | public DataIdentificationException( String value ) 13 | { 14 | super( ExceptionType.SCRIPT ); 15 | } 16 | 17 | @Override 18 | public String toString() 19 | { 20 | return value; 21 | } 22 | 23 | @Override 24 | public String getMessage() 25 | { 26 | return value; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/DeviceAcquisitionException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | import org.xframium.spi.Device; 4 | 5 | public class DeviceAcquisitionException extends XFramiumException 6 | { 7 | /** 8 | * 9 | */ 10 | private static final long serialVersionUID = 1532390382770613035L; 11 | private Device device; 12 | public DeviceAcquisitionException( Device device ) 13 | { 14 | super( ExceptionType.CLOUD ); 15 | this.device = device; 16 | } 17 | 18 | @Override 19 | public String toString() 20 | { 21 | return "Could not acquire a " + device.getKey(); 22 | } 23 | 24 | @Override 25 | public String getMessage() 26 | { 27 | return "Could not acquire a " + device.getKey(); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/DeviceConfigurationException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | public class DeviceConfigurationException extends XFramiumException 4 | { 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = -8470149870082036015L; 9 | private String appIdentifier; 10 | 11 | public DeviceConfigurationException( String appIdentifier ) 12 | { 13 | super( ExceptionType.CLOUD ); 14 | this.appIdentifier = appIdentifier; 15 | } 16 | 17 | @Override 18 | public String toString() 19 | { 20 | return "Could not start the application identified by " + appIdentifier; 21 | } 22 | 23 | @Override 24 | public String getMessage() 25 | { 26 | return "Could not start the application identified by " + appIdentifier; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/DeviceException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | public class DeviceException extends XFramiumException 4 | { 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = -8470149870082036015L; 9 | private String message; 10 | 11 | public DeviceException( String message ) 12 | { 13 | super( ExceptionType.CLOUD ); 14 | this.message = message; 15 | } 16 | 17 | @Override 18 | public String toString() 19 | { 20 | return message; 21 | } 22 | 23 | @Override 24 | public String getMessage() 25 | { 26 | return message; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/FilteredException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | public class FilteredException extends XFramiumException 4 | { 5 | 6 | 7 | private static final long serialVersionUID = 5590632064136801352L; 8 | private String message; 9 | 10 | public FilteredException( String message ) 11 | { 12 | super( ExceptionType.FILTERED ); 13 | this.message = message; 14 | } 15 | 16 | @Override 17 | public String toString() 18 | { 19 | return message; 20 | } 21 | 22 | @Override 23 | public String getMessage() 24 | { 25 | return message; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/FlowException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | public class FlowException extends XFramiumException 4 | { 5 | 6 | 7 | private static final long serialVersionUID = 5590632064136801352L; 8 | private boolean success; 9 | 10 | public FlowException( boolean success ) 11 | { 12 | super( ExceptionType.SCRIPT ); 13 | this.setSuccess( success ); 14 | } 15 | 16 | 17 | 18 | @Override 19 | public String getMessage() 20 | { 21 | return "The test was " + (isSuccess() ? "PASSED" : "FAILED") + " and foreced to exit via the FLOW keyword"; 22 | } 23 | 24 | 25 | 26 | public boolean isSuccess() 27 | { 28 | return success; 29 | } 30 | 31 | public void setSuccess( boolean success ) 32 | { 33 | this.success = success; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/ScriptConfigurationException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | public class ScriptConfigurationException extends XFramiumException 4 | { 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = -8470149870082036015L; 9 | private String message; 10 | 11 | public ScriptConfigurationException( String message ) 12 | { 13 | super( ExceptionType.CONFIGURATION ); 14 | this.message = message; 15 | } 16 | 17 | @Override 18 | public String toString() 19 | { 20 | return message; 21 | } 22 | 23 | @Override 24 | public String getMessage() 25 | { 26 | return message; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/ScriptException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | public class ScriptException extends XFramiumException 4 | { 5 | 6 | 7 | private static final long serialVersionUID = 5590632064136801352L; 8 | private String message; 9 | 10 | public ScriptException( String message ) 11 | { 12 | super( ExceptionType.SCRIPT ); 13 | this.message = message; 14 | } 15 | 16 | @Override 17 | public String toString() 18 | { 19 | return message; 20 | } 21 | 22 | @Override 23 | public String getMessage() 24 | { 25 | return message; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/TestConfigurationException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | public class TestConfigurationException extends XFramiumException 4 | { 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = -8470149870082036015L; 9 | private String testName; 10 | 11 | public TestConfigurationException( String testName ) 12 | { 13 | super( ExceptionType.CONFIGURATION ); 14 | this.testName = testName; 15 | } 16 | 17 | @Override 18 | public String toString() 19 | { 20 | return "Could not locate a test name " + testName; 21 | } 22 | 23 | @Override 24 | public String getMessage() 25 | { 26 | return "Could not locate a test name " + testName; 27 | } 28 | 29 | 30 | } 31 | -------------------------------------------------------------------------------- /framework/src/org/xframium/exception/XFramiumException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.exception; 2 | 3 | public abstract class XFramiumException extends RuntimeException 4 | { 5 | public enum ExceptionType 6 | { 7 | CONFIGURATION, 8 | SCRIPT, 9 | CLOUD, 10 | FILTERED; 11 | } 12 | 13 | private ExceptionType eType; 14 | 15 | public ExceptionType getType() 16 | { 17 | return eType; 18 | } 19 | 20 | public XFramiumException( ExceptionType eType ) 21 | { 22 | this.eType = eType; 23 | } 24 | 25 | 26 | /** 27 | * 28 | */ 29 | private static final long serialVersionUID = 2616149259768993726L; 30 | 31 | } 32 | -------------------------------------------------------------------------------- /framework/src/org/xframium/gesture/device/action/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * The device action API is an extension to gestures and allows for specialized device actions to be performed on phones 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.gesture.device.action; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/gesture/device/action/spi/perfecto/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Perfecto specific mobile device actions 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.gesture.device.action.spi.perfecto; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/gesture/factory/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Gesture factory for creating gesture activities 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.gesture.factory; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/gesture/factory/spi/appium/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Appium based gestures 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.gesture.factory.spi.appium; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/gesture/factory/spi/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Gesture factory implementations 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.gesture.factory.spi; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/gesture/factory/spi/perfecto/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Perfecto based gestures 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.gesture.factory.spi.perfecto; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/gesture/factory/spi/selenium/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Appium based gestures 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.gesture.factory.spi.selenium; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/gesture/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * The device gesture API for sending user gestures to devices 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.gesture; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/imaging/ImagingActionType.java: -------------------------------------------------------------------------------- 1 | package org.xframium.imaging; 2 | 3 | public enum ImagingActionType 4 | { 5 | ColorVerification, 6 | ContrastVerification; 7 | } -------------------------------------------------------------------------------- /framework/src/org/xframium/imaging/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.imaging; -------------------------------------------------------------------------------- /framework/src/org/xframium/integrations/common/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Utility classes for the integrations libraries 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.integrations.common; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/integrations/perfectoMobile/rest/bean/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Perfecto bean implementations 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.integrations.perfectoMobile.rest.bean; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/integrations/perfectoMobile/rest/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Perfecto REST API integrations implementation 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.integrations.perfectoMobile.rest; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/integrations/perfectoMobile/rest/services/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Perfecto REST implementations 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.integrations.perfectoMobile.rest.services; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/integrations/rest/bean/factory/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * General BEAN infrastructure for creating JAva beans from XML data or other sources 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.integrations.rest.bean.factory; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/integrations/rest/bean/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * General BEAN infrastructure 3 | * 4 | * @since 1.0.0 5 | */ 6 | 7 | package org.xframium.integrations.rest.bean; 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/integrations/sauceLabs/rest/SauceException.java: -------------------------------------------------------------------------------- 1 | package org.xframium.integrations.sauceLabs.rest; 2 | 3 | /** 4 | * Created by gavinmogan on 11/2/15. 5 | */ 6 | public class SauceException extends RuntimeException { 7 | /** 8 | * Created by gavinmogan on 11/2/15. 9 | */ 10 | public static class NotAuthorized extends SauceException { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /framework/src/org/xframium/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Integration and XSD support 3 | * 4 | * @since 1.0.0 5 | */ 6 | package org.xframium; -------------------------------------------------------------------------------- /framework/src/org/xframium/page/activity/ActivityInitiator.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.activity; 2 | 3 | public class ActivityInitiator 4 | { 5 | private String elementName; 6 | private String action; 7 | public String getElementName() 8 | { 9 | return elementName; 10 | } 11 | public void setElementName( String elementName ) 12 | { 13 | this.elementName = elementName; 14 | } 15 | public String getAction() 16 | { 17 | return action; 18 | } 19 | public void setAction( String action ) 20 | { 21 | this.action = action; 22 | } 23 | public ActivityInitiator( String elementName, String action ) 24 | { 25 | super(); 26 | this.elementName = elementName; 27 | this.action = action; 28 | } 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/activity/ActivityValidator.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.activity; 2 | 3 | public class ActivityValidator 4 | { 5 | private String elementName; 6 | private String validation; 7 | public String getElementName() 8 | { 9 | return elementName; 10 | } 11 | public void setElementName( String elementName ) 12 | { 13 | this.elementName = elementName; 14 | } 15 | public String getValidation() 16 | { 17 | return validation; 18 | } 19 | public void setValidation( String validation ) 20 | { 21 | this.validation = validation; 22 | } 23 | public ActivityValidator( String elementName, String validation ) 24 | { 25 | super(); 26 | this.elementName = elementName; 27 | this.validation = validation; 28 | } 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/activity/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.page.activity; -------------------------------------------------------------------------------- /framework/src/org/xframium/page/data/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Data driven testing data definitions 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.data; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/data/provider/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Data driven testing data definition providers 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.data.provider; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/data/provider/sql/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * SQL schema definitions for data definitions 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.data.provider.sql; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/data/provider/sql/sample-inserts.sql: -------------------------------------------------------------------------------- 1 | insert into PERFECTO_PAGE_DATA_TYPE ( NAME, LOCK_RECORDS ) 2 | values ( '', '' ); 3 | 4 | insert into PERFECTO_PAGE_DATA ( TYPE_NAME, NAME, ACTIVE ) 5 | values ( '', '', '' ); 6 | 7 | insert into PERFECTO_PAGE_DATA_ATTRS ( TYPE_NAME, RECORD_NAME, NAME, VALUE ) 8 | values ( '', '', '', '' ); 9 | 10 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/data/provider/sql/tables.sql: -------------------------------------------------------------------------------- 1 | drop table PAGE_DATA_TYPE; 2 | drop table PAGE_DATA; 3 | drop table PAGE_DATA_ATTRS; 4 | 5 | create table PAGE_DATA_TYPE 6 | ( 7 | ID NUMBER NOT NULL, 8 | NAME VARCHAR(50) NOT NULL, 9 | LOCK_RECORDS VARCHAR(1), 10 | CONSTRAINT CHK_LOCK_RECORDS CHECK (LOCK_RECORDS IN ( 'Y', 'N' )) 11 | ); 12 | 13 | create table PAGE_DATA 14 | ( 15 | ID NUMBER NOT NULL, 16 | TYPE_ID INTEGER NOT NULL, 17 | NAME VARCHAR(50) NOT NULL, 18 | ACTIVE VARCHAR(1), 19 | CONSTRAINT CHK_ACTIVE_2 CHECK (ACTIVE IN ( 'Y', 'N' )) 20 | ); 21 | 22 | create table PAGE_DATA_ATTRS 23 | ( 24 | ID NUMBER NOT NULL, 25 | TYPE_ID INTEGER NOT NULL, 26 | RECORD_ID INTEGER NOT NULL, 27 | NAME VARCHAR(50) NOT NULL, 28 | VALUE VARCHAR(1000) NOT NULL 29 | ); 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/ReportableBy.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.element; 2 | 3 | import java.util.List; 4 | 5 | public interface ReportableBy 6 | { 7 | public List getResults(); 8 | public void addResult( String locator, int time, boolean success ); 9 | } 10 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/natural/NLXpath.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.element.natural; 2 | 3 | import org.openqa.selenium.WebElement; 4 | import org.xframium.device.factory.DeviceWebDriver; 5 | 6 | public interface NLXpath 7 | { 8 | public WebElement getElement( DeviceWebDriver webDriver, NaturalLanguageDescriptor nL ); 9 | public String generateXPath( NaturalLanguageDescriptor nL ); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Definitions of individual page elements 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.element; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/provider/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Page Element data providers 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.element.provider; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/provider/sql/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * SQL schemas for database backed element providers 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.element.provider.sql; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/provider/sql/sample-inserts.sql: -------------------------------------------------------------------------------- 1 | insert into PERFECTO_SITES ( NAME ) 2 | values ( '' ); 3 | 4 | insert into PERFECTO_PAGES ( SITE_NAME, NAME ) 5 | values ( '', '' ); 6 | 7 | insert into PERFECTO_ELEMENTS ( SITE_NAME, PAGE_NAME, NAME, DESCRIPTOR, VALUE, CONTEXT_NAME ) 8 | values ( '', '', '', '', '', '' ); 9 | 10 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/provider/sql/tables.sql: -------------------------------------------------------------------------------- 1 | drop table PERFECTO_SITES; 2 | drop table PERFECTO_PAGES; 3 | drop table PERFECTO_ELEMENTS; 4 | 5 | create table PERFECTO_SITES 6 | ( 7 | NAME VARCHAR(50) NOT NULL 8 | ); 9 | 10 | create table PERFECTO_PAGES 11 | ( 12 | SITE_NAME VARCHAR(50) NOT NULL, 13 | NAME VARCHAR(50) NOT NULL 14 | ); 15 | 16 | create table PERFECTO_ELEMENTS 17 | ( 18 | SITE_NAME VARCHAR(50) NOT NULL, 19 | PAGE_NAME VARCHAR(50) NOT NULL, 20 | NAME VARCHAR(50) NOT NULL, 21 | DESCRIPTOR VARCHAR(50) NOT NULL, 22 | VALUE VARCHAR(200) NOT NULL, 23 | CONTEXT_NAME VARCHAR(50) 24 | ); 25 | 26 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/provider/xsd/package-info.java: -------------------------------------------------------------------------------- 1 | // 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 3 | // See http://java.sun.com/xml/jaxb 4 | // Any modifications to this file will be lost upon recompilation of the source schema. 5 | // Generated on: 2017.10.04 at 12:45:01 PM EDT 6 | // 7 | 8 | @javax.xml.bind.annotation.XmlSchema(namespace = "http://www.xframium.org/pageRegistry", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 9 | package org.xframium.page.element.provider.xsd; 10 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/spi/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.page.element.spi; -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/spi/set/AbstractSetMethod.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.element.spi.set; 2 | 3 | import org.apache.commons.logging.Log; 4 | import org.apache.commons.logging.LogFactory; 5 | import org.openqa.selenium.WebDriver; 6 | import org.openqa.selenium.WebElement; 7 | 8 | public abstract class AbstractSetMethod implements SetMethod 9 | { 10 | protected Log log = LogFactory.getLog( AbstractSetMethod.class ); 11 | protected abstract boolean _set( WebElement webElement, WebDriver webDriver, String value, String setType, String xFID ); 12 | @Override 13 | public boolean set( WebElement webElement, WebDriver webDriver, String value, String setType, String xFID ) 14 | { 15 | if ( log.isInfoEnabled()) 16 | log.info( Thread.currentThread().getName() + ": Setting value to " + value + " using [" + getClass().getSimpleName() + "]" ); 17 | return _set( webElement, webDriver, value, setType, xFID ); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/spi/set/SetMethod.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.element.spi.set; 2 | 3 | import org.openqa.selenium.WebDriver; 4 | import org.openqa.selenium.WebElement; 5 | 6 | public interface SetMethod 7 | { 8 | public boolean set( WebElement webElement, WebDriver webDriver, String value, String setType, String xFID ); 9 | } 10 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/spi/set/SpinnerSetMethod.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.element.spi.set; 2 | 3 | import org.openqa.selenium.By; 4 | import org.openqa.selenium.WebDriver; 5 | import org.openqa.selenium.WebElement; 6 | import org.openqa.selenium.support.ui.Select; 7 | 8 | public class SpinnerSetMethod extends AbstractSetMethod 9 | { 10 | @Override 11 | public boolean _set( WebElement webElement, WebDriver webDriver, String value, String setType, String xFID ) 12 | { 13 | webElement.click(); 14 | webDriver.findElement( By.xpath( "//android.widget.TextView[@text='" + value + "']" ) ).click(); 15 | 16 | return true; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/element/spi/set/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.page.element.spi.set; -------------------------------------------------------------------------------- /framework/src/org/xframium/page/factory/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Factory definition and implementations for pages and page elements 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.factory; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/GherkinContainer.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.keyWord; 2 | 3 | import java.lang.reflect.Method; 4 | import java.util.regex.Pattern; 5 | 6 | public class GherkinContainer 7 | { 8 | private String value; 9 | private Pattern regex; 10 | private Method method; 11 | 12 | public GherkinContainer(String value, Pattern regex, Method method) { 13 | super(); 14 | this.value = value; 15 | this.regex = regex; 16 | this.method = method; 17 | } 18 | public String getValue() { 19 | return value; 20 | } 21 | public void setValue(String value) { 22 | this.value = value; 23 | } 24 | public Pattern getRegex() { 25 | return regex; 26 | } 27 | public void setRegex(Pattern regex) { 28 | this.regex = regex; 29 | } 30 | public Method getMethod() { 31 | return method; 32 | } 33 | public void setMethod(Method method) { 34 | this.method = method; 35 | } 36 | 37 | 38 | 39 | } 40 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/matrixExtension/DataArray.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.keyWord.matrixExtension; 2 | 3 | public abstract class DataArray 4 | { 5 | private String dataDefinition; 6 | private String[] dataArray; 7 | 8 | public DataArray ( String dataDefinition ) 9 | { 10 | if ( dataDefinition != null ) 11 | { 12 | this.dataDefinition = dataDefinition; 13 | this.dataArray = dataDefinition.split( "\\r?\\n" ); 14 | } 15 | } 16 | 17 | public String getDataDefinition() 18 | { 19 | return dataDefinition; 20 | } 21 | 22 | public String[] getDataArray() 23 | { 24 | return dataArray; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/matrixExtension/MatrixParameterArray.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.keyWord.matrixExtension; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | import org.xframium.page.keyWord.KeyWordParameter; 6 | 7 | public class MatrixParameterArray extends DataArray 8 | { 9 | public MatrixParameterArray( String dataDefinition ) 10 | { 11 | super( dataDefinition ); 12 | } 13 | 14 | public List getParameters() 15 | { 16 | if ( getDataArray() != null && getDataArray().length > 0 ) 17 | { 18 | List parameterList = new ArrayList( getDataArray().length ); 19 | 20 | for ( String param : getDataArray() ) 21 | parameterList.add( new MatrixParameter( param ).getParameter() ); 22 | 23 | return parameterList; 24 | } 25 | else 26 | return null; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/matrixExtension/MatrixTokenArray.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.keyWord.matrixExtension; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | import org.xframium.page.keyWord.KeyWordToken; 6 | 7 | public class MatrixTokenArray extends DataArray 8 | { 9 | public MatrixTokenArray( String dataDefinition ) 10 | { 11 | super( dataDefinition ); 12 | } 13 | 14 | public List getTokens() 15 | { 16 | if ( getDataArray() != null && getDataArray().length > 0 ) 17 | { 18 | List parameterList = new ArrayList( getDataArray().length ); 19 | 20 | for ( String param : getDataArray() ) 21 | parameterList.add( new MatrixToken( param ).getToken() ); 22 | 23 | return parameterList; 24 | } 25 | else 26 | return null; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Root structure of the keyword driven framework 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.keyWord; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/provider/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Keyword definitions providers 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.keyWord.provider; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/provider/sql/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * SQL schemas for database backed keyword definitions 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.keyWord.provider.sql; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/provider/xsd/package-info.java: -------------------------------------------------------------------------------- 1 | // 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 3 | // See http://java.sun.com/xml/jaxb 4 | // Any modifications to this file will be lost upon recompilation of the source schema. 5 | // Generated on: 2018.08.22 at 07:54:37 AM EDT 6 | // 7 | 8 | @javax.xml.bind.annotation.XmlSchema(namespace = "http://www.xframium.org/testRegistry", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 9 | package org.xframium.page.keyWord.provider.xsd; 10 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/spi/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Keyword page utiility classes 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.keyWord.spi; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/step/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Step definition and factory classes 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.keyWord.step; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/step/spi/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Default keyword implementations 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.keyWord.step.spi; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/step/transform/DefaultTransformation.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.keyWord.step.transform; 2 | 3 | public class DefaultTransformation implements ValueTransformation 4 | { 5 | @Override 6 | public String transformValue(String value) 7 | { 8 | return value; 9 | } 10 | 11 | @Override 12 | public String wrapValue(String value) 13 | { 14 | return value; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/keyWord/step/transform/ValueTransformation.java: -------------------------------------------------------------------------------- 1 | package org.xframium.page.keyWord.step.transform; 2 | 3 | public interface ValueTransformation 4 | { 5 | public String transformValue( String value ); 6 | public String wrapValue( String value ); 7 | } 8 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/listener/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Execution Listener definitions 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page.listener; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/page/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Page Object Model implementation 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.page; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/reporting/html/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/framework/src/org/xframium/reporting/html/.DS_Store -------------------------------------------------------------------------------- /framework/src/org/xframium/reporting/html/dark/Grid.js: -------------------------------------------------------------------------------- 1 | var testData = {"pageData": { 2 | "testingTwo": [ 3 | "grid-testingTwo-Chrome Local.png", 4 | "grid-testingTwo-Firefox Local.png" 5 | ], 6 | "testingOne": [ 7 | "grid-testingOne-Chrome Local.png", 8 | "grid-testingOne-Firefox Local.png" 9 | ], 10 | "testingOneA": [ 11 | "grid-testingOneA-Chrome Local.png", 12 | "grid-testingOneA-Firefox Local.png" 13 | ] 14 | }}; -------------------------------------------------------------------------------- /framework/src/org/xframium/reporting/html/light/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/framework/src/org/xframium/reporting/html/light/.DS_Store -------------------------------------------------------------------------------- /framework/src/org/xframium/reporting/html/light/assets.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/framework/src/org/xframium/reporting/html/light/assets.zip -------------------------------------------------------------------------------- /framework/src/org/xframium/reporting/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.reporting; -------------------------------------------------------------------------------- /framework/src/org/xframium/resource/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.resource; -------------------------------------------------------------------------------- /framework/src/org/xframium/resource/script/applications/applicationRegistry.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /framework/src/org/xframium/resource/script/applications/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.resource.script.applications; -------------------------------------------------------------------------------- /framework/src/org/xframium/resource/script/xfNative/objectRepository/page-xF-Application Notifications.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /framework/src/org/xframium/resource/script/xfNative/objectRepository/page-xF-Device Management.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/resource/script/xfNative/objectRepository/page-xF-General.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /framework/src/org/xframium/resource/script/xfNative/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.resource.script.xfNative; -------------------------------------------------------------------------------- /framework/src/org/xframium/spi/driver/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Extended driver implementations 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.spi.driver; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/spi/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * General utiility classes 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.spi; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/utility/ContextWalker.java: -------------------------------------------------------------------------------- 1 | package org.xframium.utility; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | import org.xframium.container.ContextContainer; 6 | import org.xframium.device.factory.DeviceWebDriver; 7 | 8 | public class ContextWalker 9 | { 10 | public List walkContext( DeviceWebDriver webDriver ) 11 | { 12 | List contextList = new ArrayList( 10 ); 13 | 14 | for ( String contextHandle : webDriver.getContextHandles() ) 15 | { 16 | contextList.add( new ContextContainer( contextHandle ) ); 17 | } 18 | 19 | return contextList; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /framework/src/org/xframium/utility/DateUtility.java: -------------------------------------------------------------------------------- 1 | package org.xframium.utility; 2 | 3 | import java.util.Date; 4 | import java.util.List; 5 | import com.joestelmach.natty.DateGroup; 6 | import com.joestelmach.natty.Parser; 7 | 8 | public class DateUtility 9 | { 10 | 11 | private static final DateUtility singleton = new DateUtility(); 12 | 13 | private DateUtility() 14 | { 15 | 16 | } 17 | 18 | public static DateUtility instance() 19 | { 20 | return singleton; 21 | } 22 | 23 | public Date parseDate( String date ) 24 | { 25 | Parser parser = new Parser(); 26 | List groups = parser.parse( date ); 27 | 28 | for ( DateGroup group : groups ) 29 | { 30 | List dates = group.getDates(); 31 | return dates.get( 0 ); 32 | } 33 | 34 | return null; 35 | 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /framework/src/org/xframium/utility/data/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | /** 5 | * @author Allen 6 | * 7 | */ 8 | package org.xframium.utility.data; -------------------------------------------------------------------------------- /framework/src/org/xframium/utility/data/stateNames.txt: -------------------------------------------------------------------------------- 1 | AK 2 | AL 3 | AR 4 | AZ 5 | CA 6 | CO 7 | CT 8 | DC 9 | DE 10 | FL 11 | GA 12 | HI 13 | IA 14 | ID 15 | IL 16 | IN 17 | KS 18 | KY 19 | LA 20 | MA 21 | MD 22 | ME 23 | MI 24 | MN 25 | MO 26 | MS 27 | MT 28 | NC 29 | ND 30 | NE 31 | NH 32 | NJ 33 | NM 34 | NV 35 | NY 36 | OH 37 | OK 38 | OR 39 | PA 40 | RI 41 | SC 42 | SD 43 | TN 44 | TX 45 | UT 46 | VA 47 | VT 48 | WA 49 | WI 50 | WV 51 | WY -------------------------------------------------------------------------------- /framework/src/org/xframium/utility/html/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * UFT WebElement parsing framework 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.utility.html; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/utility/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * General utility classes 4 | * 5 | * @since 1.0.0 6 | */ 7 | 8 | package org.xframium.utility; 9 | -------------------------------------------------------------------------------- /framework/src/org/xframium/utility/parser/xpath/XPath.tokens: -------------------------------------------------------------------------------- 1 | T__0=1 2 | T__1=2 3 | T__2=3 4 | T__3=4 5 | T__4=5 6 | T__5=6 7 | T__6=7 8 | T__7=8 9 | NodeType=9 10 | Number=10 11 | AxisName=11 12 | PATHSEP=12 13 | ABRPATH=13 14 | LPAR=14 15 | RPAR=15 16 | LBRAC=16 17 | RBRAC=17 18 | MINUS=18 19 | PLUS=19 20 | DOT=20 21 | MUL=21 22 | DOTDOT=22 23 | AT=23 24 | COMMA=24 25 | PIPE=25 26 | LESS=26 27 | MORE_=27 28 | LE=28 29 | GE=29 30 | COLON=30 31 | CC=31 32 | APOS=32 33 | QUOT=33 34 | Literal=34 35 | Whitespace=35 36 | NCName=36 37 | 'processing-instruction'=1 38 | 'or'=2 39 | 'and'=3 40 | '='=4 41 | '!='=5 42 | 'div'=6 43 | 'mod'=7 44 | '$'=8 45 | '/'=12 46 | '//'=13 47 | '('=14 48 | ')'=15 49 | '['=16 50 | ']'=17 51 | '-'=18 52 | '+'=19 53 | '.'=20 54 | '*'=21 55 | '..'=22 56 | '@'=23 57 | ','=24 58 | '|'=25 59 | '<'=26 60 | '>'=27 61 | '<='=28 62 | '>='=29 63 | ':'=30 64 | '::'=31 65 | '\''=32 66 | '\"'=33 67 | -------------------------------------------------------------------------------- /framework/src/org/xframium/utility/parser/xpath/XPathLexer.tokens: -------------------------------------------------------------------------------- 1 | T__0=1 2 | T__1=2 3 | T__2=3 4 | T__3=4 5 | T__4=5 6 | T__5=6 7 | T__6=7 8 | T__7=8 9 | NodeType=9 10 | Number=10 11 | AxisName=11 12 | PATHSEP=12 13 | ABRPATH=13 14 | LPAR=14 15 | RPAR=15 16 | LBRAC=16 17 | RBRAC=17 18 | MINUS=18 19 | PLUS=19 20 | DOT=20 21 | MUL=21 22 | DOTDOT=22 23 | AT=23 24 | COMMA=24 25 | PIPE=25 26 | LESS=26 27 | MORE_=27 28 | LE=28 29 | GE=29 30 | COLON=30 31 | CC=31 32 | APOS=32 33 | QUOT=33 34 | Literal=34 35 | Whitespace=35 36 | NCName=36 37 | 'processing-instruction'=1 38 | 'or'=2 39 | 'and'=3 40 | '='=4 41 | '!='=5 42 | 'div'=6 43 | 'mod'=7 44 | '$'=8 45 | '/'=12 46 | '//'=13 47 | '('=14 48 | ')'=15 49 | '['=16 50 | ']'=17 51 | '-'=18 52 | '+'=19 53 | '.'=20 54 | '*'=21 55 | '..'=22 56 | '@'=23 57 | ','=24 58 | '|'=25 59 | '<'=26 60 | '>'=27 61 | '<='=28 62 | '>='=29 63 | ':'=30 64 | '::'=31 65 | '\''=32 66 | '\"'=33 67 | -------------------------------------------------------------------------------- /framework/xframium.yml: -------------------------------------------------------------------------------- 1 | platform: linux 2 | 3 | image_resource: 4 | type: docker-image 5 | source: 6 | repository: maven 7 | tag: 'latest' 8 | 9 | inputs: 10 | - name: source-code 11 | 12 | outputs: 13 | - name: built-project 14 | 15 | run: 16 | path: mvn 17 | args: ["-f", "source-code/driver/pom.xml", "clean", "compile", "exec:exec" , "-DdriverConfig=../testing/driverConfig.xml"] -------------------------------------------------------------------------------- /jenkins/README: -------------------------------------------------------------------------------- 1 | The xFramium/Jenkins plugin allows for xFramium scripts to be executed directly in Jenkins. You can specify tags, test, clouds, etc and view reports linked to each run. 2 | -------------------------------------------------------------------------------- /jira/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /jira/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /jira/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | jira 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /jira/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /jira/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /jira/src/org/xframium/integrations/jira/ExecutionStatus.java: -------------------------------------------------------------------------------- 1 | package org.xframium.integrations.jira; 2 | /** 3 | * Enum that stored the execution status values 4 | * 5 | */ 6 | public enum ExecutionStatus { 7 | PASS(1), FAIL(2), WIP(3); 8 | 9 | private int value; 10 | 11 | private ExecutionStatus(int value){ 12 | this.value = value; 13 | } 14 | 15 | public int getValue() { 16 | return value; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /jira/src/org/xframium/integrations/jira/HTTPMethod.java: -------------------------------------------------------------------------------- 1 | package org.xframium.integrations.jira; 2 | 3 | /** 4 | * 5 | * 6 | */ 7 | public enum HTTPMethod { 8 | GET("GET"), POST("POST"), DELETE("DELETE"), PUT("PUT"); 9 | 10 | private String value; 11 | 12 | private HTTPMethod(String method){ 13 | this.value = method; 14 | } 15 | 16 | public String getValue() { 17 | return value; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jira/src/org/xframium/integrations/jira/entity/JIRAAttachment.java: -------------------------------------------------------------------------------- 1 | package org.xframium.integrations.jira.entity; 2 | 3 | import java.io.File; 4 | 5 | /** 6 | * Represents an attachment inside execution 7 | * Test Cycle > Execution > Attachment 8 | * 9 | */ 10 | 11 | public class JIRAAttachment extends JIRAEntity { 12 | 13 | private String attachmentName; 14 | private File attachmentFile; 15 | 16 | public String getAttachmentName() { 17 | return attachmentName; 18 | } 19 | public void setAttachmentName(String attachmentName) { 20 | this.attachmentName = attachmentName; 21 | } 22 | public File getAttachmentFile() { 23 | return attachmentFile; 24 | } 25 | public void setAttachmentFile(File attachmentFile) { 26 | this.attachmentFile = attachmentFile; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /jira/src/org/xframium/integrations/jira/entity/JIRAEntity.java: -------------------------------------------------------------------------------- 1 | package org.xframium.integrations.jira.entity; 2 | 3 | /** 4 | * Common entity class extended by other entity classes. 5 | * 6 | */ 7 | public abstract class JIRAEntity { 8 | 9 | private String id; 10 | 11 | public String getId() { 12 | return id; 13 | } 14 | 15 | public void setId(String id) { 16 | this.id = id; 17 | } 18 | 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /jira/src/org/xframium/integrations/jira/entity/JIRAProject.java: -------------------------------------------------------------------------------- 1 | package org.xframium.integrations.jira.entity; 2 | 3 | /** 4 | * Represents a Project in JIRA 5 | * 6 | */ 7 | public class JIRAProject extends JIRAEntity { 8 | 9 | private String projectKey; 10 | 11 | 12 | public String getProjectKey() { 13 | return projectKey; 14 | } 15 | 16 | public void setProjectKey(String projectKey) { 17 | this.projectKey = projectKey; 18 | } 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /jira/src/org/xframium/integrations/jira/entity/JIRAVersion.java: -------------------------------------------------------------------------------- 1 | package org.xframium.integrations.jira.entity; 2 | 3 | /** 4 | * Represents a version in JIRA 5 | * Project > Version 6 | * 7 | */ 8 | public class JIRAVersion extends JIRAEntity { 9 | 10 | private String projectId; 11 | private String versionName; 12 | 13 | 14 | public String getProjectId() { 15 | return projectId; 16 | } 17 | public void setProjectId(String projectId) { 18 | this.projectId = projectId; 19 | } 20 | public String getVersionName() { 21 | return versionName; 22 | } 23 | public void setVersionName(String versionName) { 24 | this.versionName = versionName; 25 | } 26 | 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /launcher/bin/fail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/launcher/bin/fail.png -------------------------------------------------------------------------------- /launcher/bin/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/launcher/bin/success.png -------------------------------------------------------------------------------- /sampleWebTest/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /sampleWebTest/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /target/ 3 | /test-output/ 4 | -------------------------------------------------------------------------------- /sampleWebTest/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | sampleWebTest 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /sampleWebTest/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 3 | org.eclipse.jdt.core.compiler.compliance=1.5 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.5 6 | -------------------------------------------------------------------------------- /sampleWebTest/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /sampleWebTest/resources/.gitignore: -------------------------------------------------------------------------------- 1 | /test-output/ 2 | -------------------------------------------------------------------------------- /sampleWebTest/resources/applicationRegistry.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sampleWebTest/resources/cloudRegistry.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sampleWebTest/resources/data/SAMPLE_DATA.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/sampleWebTest/resources/data/SAMPLE_DATA.xlsx -------------------------------------------------------------------------------- /sampleWebTest/resources/data/testData.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /sampleWebTest/resources/deviceRegistry.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sampleWebTest/resources/functions/Web Test/Reporting.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /sampleWebTest/resources/functions/functions-Web Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /sampleWebTest/resources/objectRepository/Web Test/Facebook/page-Login.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /sampleWebTest/resources/objectRepository/Web Test/Facebook/site-Facebook.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /sampleWebTest/resources/objectRepository/Web Test/Google/page-Search.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /sampleWebTest/resources/objectRepository/Web Test/Google/site-Google.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /sampleWebTest/resources/objectRepository/Web Test/objectRepository.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sampleWebTest/resources/tests/tests-Web Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sampleWebTest/src/org/xframium/webTest/WebTestDriver.java: -------------------------------------------------------------------------------- 1 | package org.xframium.webTest; 2 | 3 | import org.xframium.driver.TestDriver; 4 | 5 | public class WebTestDriver extends TestDriver 6 | { 7 | public static void main( String[] args ) 8 | { 9 | TestDriver.main( new String[] { "resources\\Web Test.xml" } ); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /terminal-driver/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /terminal-driver/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | xframium-terminal-driver 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /terminal-driver/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/test/java=UTF-8 4 | encoding/=UTF-8 5 | -------------------------------------------------------------------------------- /terminal-driver/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate 4 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 5 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 6 | org.eclipse.jdt.core.compiler.compliance=1.8 7 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 8 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 9 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 10 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 13 | org.eclipse.jdt.core.compiler.source=1.8 14 | -------------------------------------------------------------------------------- /terminal-driver/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /terminal-driver/lib/openjfx-monocle-8u76-b04.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/terminal-driver/lib/openjfx-monocle-8u76-b04.jar -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/application/KeyboardStatusChangedEvent.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.application; 2 | 3 | public final class KeyboardStatusChangedEvent 4 | { 5 | public final boolean insertMode; 6 | public final boolean keyboardLocked; 7 | public final String keyName; 8 | 9 | public KeyboardStatusChangedEvent (boolean insertMode, boolean keyboardLocked, 10 | String keyName) 11 | { 12 | this.insertMode = insertMode; 13 | this.keyboardLocked = keyboardLocked; 14 | this.keyName = keyName; 15 | } 16 | 17 | @Override 18 | public String toString () 19 | { 20 | StringBuilder text = new StringBuilder (); 21 | 22 | text.append (String.format ("Keyboard locked ... %s%n", keyboardLocked)); 23 | text.append (String.format ("Insert mode on .... %s%n", insertMode)); 24 | text.append (String.format ("Key pressed ....... %s%n", keyName)); 25 | 26 | return text.toString (); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/application/KeyboardStatusListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.application; 2 | 3 | public interface KeyboardStatusListener 4 | { 5 | public void keyboardStatusChanged (KeyboardStatusChangedEvent evt); 6 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/application/Mainframe.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.application; 2 | 3 | import com.bytezone.dm3270.commands.Command; 4 | 5 | public interface Mainframe 6 | { 7 | public void receiveCommand (Command command); 8 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/assistant/BatchJobListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.assistant; 2 | 3 | public interface BatchJobListener 4 | { 5 | public void batchJobSubmitted (int jobNumber, String jobName); 6 | 7 | public void batchJobEnded (int jobNumber, String jobName, String time, 8 | int conditionCode); 9 | 10 | public void batchJobFailed (int jobNumber, String jobName, String time); 11 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/assistant/BatchJobSelectionListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.assistant; 2 | 3 | public interface BatchJobSelectionListener 4 | { 5 | public void jobSelected (BatchJob job); 6 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/assistant/DatasetSelectionListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.assistant; 2 | 3 | public interface DatasetSelectionListener 4 | { 5 | public void datasetSelected (Dataset dataset); 6 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/assistant/FileSelectionListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.assistant; 2 | 3 | public interface FileSelectionListener 4 | { 5 | public void fileSelected (String filename); 6 | } 7 | -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/attributes/BackgroundColor.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.attributes; 2 | 3 | import com.bytezone.dm3270.display.ContextManager; 4 | import com.bytezone.dm3270.display.ScreenContext; 5 | 6 | public class BackgroundColor extends ColorAttribute 7 | { 8 | public BackgroundColor (byte value) 9 | { 10 | super (AttributeType.BACKGROUND_COLOR, Attribute.XA_BGCOLOR, value); 11 | } 12 | 13 | @Override 14 | public ScreenContext process (ContextManager contextManager, 15 | ScreenContext defaultContext, ScreenContext currentContext) 16 | { 17 | return contextManager.setBackground (currentContext, color); 18 | } 19 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/attributes/ForegroundColor.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.attributes; 2 | 3 | import com.bytezone.dm3270.display.ContextManager; 4 | import com.bytezone.dm3270.display.ScreenContext; 5 | 6 | public class ForegroundColor extends ColorAttribute 7 | { 8 | public ForegroundColor (byte value) 9 | { 10 | super (AttributeType.FOREGROUND_COLOR, Attribute.XA_FGCOLOR, value); 11 | } 12 | 13 | @Override 14 | public ScreenContext process (ContextManager contextManager, 15 | ScreenContext defaultContext, ScreenContext currentContext) 16 | { 17 | return contextManager.setForeground (currentContext, color); 18 | } 19 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/attributes/ResetAttribute.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.attributes; 2 | 3 | import com.bytezone.dm3270.display.ContextManager; 4 | import com.bytezone.dm3270.display.ScreenContext; 5 | 6 | public class ResetAttribute extends Attribute 7 | { 8 | public ResetAttribute (byte value) 9 | { 10 | super (AttributeType.RESET, XA_RESET, value); 11 | } 12 | 13 | @Override 14 | public ScreenContext process (ContextManager contextManager, 15 | ScreenContext defaultContext, ScreenContext currentContext) 16 | { 17 | return defaultContext; 18 | } 19 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/buffers/AbstractReplyBuffer.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.buffers; 2 | 3 | import java.util.Optional; 4 | 5 | public abstract class AbstractReplyBuffer extends AbstractBuffer implements ReplyBuffer 6 | { 7 | private Buffer reply; 8 | 9 | public AbstractReplyBuffer () 10 | { 11 | super (); 12 | } 13 | 14 | public AbstractReplyBuffer (byte[] buffer, int offset, int length) 15 | { 16 | super (buffer, offset, length); 17 | } 18 | 19 | @Override 20 | public void setReply (Buffer reply) 21 | { 22 | this.reply = reply; 23 | } 24 | 25 | @Override 26 | public Optional getReply () 27 | { 28 | return reply == null ? Optional.empty () : Optional.of (reply); 29 | } 30 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/buffers/AbstractTN3270Command.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.buffers; 2 | 3 | public abstract class AbstractTN3270Command extends AbstractReplyBuffer 4 | { 5 | public AbstractTN3270Command () 6 | { 7 | super (); 8 | } 9 | 10 | public AbstractTN3270Command (byte[] buffer, int offset, int length) 11 | { 12 | super (buffer, offset, length); 13 | } 14 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/buffers/AbstractTelnetCommand.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.buffers; 2 | 3 | import com.bytezone.dm3270.streams.TelnetState; 4 | 5 | public abstract class AbstractTelnetCommand extends AbstractReplyBuffer 6 | { 7 | protected TelnetState telnetState; 8 | 9 | public AbstractTelnetCommand (byte[] buffer, int offset, int length, 10 | TelnetState telnetState) 11 | { 12 | super (buffer, offset, length); 13 | this.telnetState = telnetState; 14 | } 15 | 16 | @Override 17 | public byte[] getTelnetData () 18 | { 19 | return data; // do not expand anything, do not append EOR bytes 20 | } 21 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/buffers/Buffer.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.buffers; 2 | 3 | import com.bytezone.dm3270.display.Screen; 4 | 5 | public interface Buffer 6 | { 7 | public abstract byte[] getData (); 8 | 9 | public abstract byte[] getTelnetData (); 10 | 11 | public abstract int size (); 12 | 13 | public abstract void process (Screen screen); 14 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/buffers/DefaultBuffer.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.buffers; 2 | 3 | import com.bytezone.dm3270.display.Screen; 4 | 5 | public class DefaultBuffer extends AbstractBuffer 6 | { 7 | public DefaultBuffer (byte[] buffer) 8 | { 9 | super (buffer); 10 | } 11 | 12 | @Override 13 | public void process (Screen screen) 14 | { 15 | System.out.println ("Nothing to process"); 16 | } 17 | 18 | @Override 19 | public String toString () 20 | { 21 | return "DefaultBuffer"; 22 | } 23 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/buffers/ReplyBuffer.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.buffers; 2 | 3 | import java.util.Optional; 4 | 5 | public interface ReplyBuffer extends Buffer 6 | { 7 | public Optional getReply (); 8 | 9 | public void setReply (Buffer reply); 10 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/commands/EraseAllUnprotectedCommand.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.commands; 2 | 3 | import com.bytezone.dm3270.display.Screen; 4 | 5 | public class EraseAllUnprotectedCommand extends Command 6 | { 7 | // This command has no WCC or data. 8 | public EraseAllUnprotectedCommand (byte[] buffer, int offset, int length) 9 | { 10 | super (buffer, offset, length); 11 | assert buffer[offset] == Command.ERASE_ALL_UNPROTECTED_0F 12 | || buffer[offset] == Command.ERASE_ALL_UNPROTECTED_6F; 13 | } 14 | 15 | @Override 16 | public void process (Screen screen) 17 | { 18 | screen.eraseAllUnprotected (); 19 | } 20 | 21 | @Override 22 | public String getName () 23 | { 24 | return "Erase All Unprotected"; 25 | } 26 | 27 | @Override 28 | public String toString () 29 | { 30 | return "EAU :"; 31 | } 32 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/console/ConsoleMessageListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.console; 2 | 3 | public interface ConsoleMessageListener 4 | { 5 | public void consoleMessage (ConsoleMessage consoleMessage); 6 | } 7 | -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/display/CursorMoveListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.display; 2 | 3 | public interface CursorMoveListener 4 | { 5 | public abstract void cursorMoved (int oldLocation, int newLocation, Field field); 6 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/display/DisplayScreen.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.display; 2 | 3 | public interface DisplayScreen 4 | { 5 | Pen getPen (); 6 | 7 | ScreenDimensions getScreenDimensions (); 8 | 9 | ScreenPosition getScreenPosition (int position); 10 | 11 | ScreenPosition[] getScreenPositions (); 12 | 13 | int validate (int position); 14 | 15 | void clearScreen (); 16 | 17 | void insertCursor (int position); 18 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/display/FieldChangeListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.display; 2 | 3 | public interface FieldChangeListener 4 | { 5 | public abstract void fieldChanged (Field oldField, Field newField); 6 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/display/FontManager.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.display; 2 | 3 | import java.util.prefs.Preferences; 4 | 5 | import javafx.scene.control.Menu; 6 | import javafx.scene.text.Font; 7 | 8 | public interface FontManager 9 | { 10 | public static FontManager getInstance (Screen screen, Preferences prefs) 11 | { 12 | return new FontManagerType1 (screen, prefs); 13 | } 14 | 15 | public Menu getFontMenu (); 16 | 17 | public void smaller (); 18 | 19 | public void bigger (); 20 | 21 | public String getFontName (); 22 | 23 | public int getFontSize (); 24 | 25 | public Font getStatusBarFont (); 26 | 27 | public FontDetails getFontDetails (); 28 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/display/ScreenChangeListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.display; 2 | 3 | public interface ScreenChangeListener 4 | { 5 | public abstract void screenChanged (ScreenWatcher screenWatcher); 6 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/display/TSOCommandListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.display; 2 | 3 | public interface TSOCommandListener 4 | { 5 | public void tsoCommand (String command); 6 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/extended/ResponseCommand.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.extended; 2 | 3 | import com.bytezone.dm3270.utilities.Dm3270Utility; 4 | 5 | public class ResponseCommand extends AbstractExtendedCommand 6 | { 7 | public ResponseCommand (CommandHeader commandHeader, byte[] buffer, int offset, 8 | int length) 9 | { 10 | super (commandHeader, buffer, offset, length); 11 | } 12 | 13 | @Override 14 | public String getName () 15 | { 16 | return "Response"; 17 | } 18 | 19 | @Override 20 | public String toString () 21 | { 22 | return String.format ("Rsp: %02X", data[0]); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/filetransfer/RecordNumber.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.filetransfer; 2 | 3 | import com.bytezone.dm3270.utilities.Dm3270Utility; 4 | 5 | public class RecordNumber extends TransferRecord 6 | { 7 | static final byte RECORD_LENGTH = 6; 8 | static final byte TYPE = 0x63; 9 | 10 | int recordNumber; 11 | 12 | public RecordNumber (int recordNumber) 13 | { 14 | super (TYPE, RECORD_LENGTH); 15 | Dm3270Utility.packUnsignedLong (recordNumber, data, 2); 16 | } 17 | 18 | public RecordNumber (byte[] data, int offset) 19 | { 20 | super (data, offset); 21 | recordNumber = Dm3270Utility.unsignedLong (data, 2); 22 | } 23 | 24 | @Override 25 | public String toString () 26 | { 27 | return String.format ("recnum : %s", Dm3270Utility.toHexString (data)); 28 | } 29 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/filetransfer/RecordSize.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.filetransfer; 2 | 3 | import com.bytezone.dm3270.utilities.Dm3270Utility; 4 | 5 | public class RecordSize extends TransferRecord 6 | { 7 | int recordSize1; 8 | int recordSize2; 9 | 10 | public RecordSize (byte[] data, int offset) 11 | { 12 | super (data, offset); 13 | recordSize1 = Dm3270Utility.unsignedShort (data, offset + 2); 14 | recordSize2 = Dm3270Utility.unsignedShort (data, offset + 4); 15 | } 16 | 17 | @Override 18 | public String toString () 19 | { 20 | return String.format ("rec size : %s (%,d or %,d)", Dm3270Utility.toHexString (data), 21 | recordSize1, recordSize2); 22 | } 23 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/filetransfer/TransferListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.filetransfer; 2 | 3 | import com.bytezone.dm3270.filetransfer.TransferManager.TransferStatus; 4 | 5 | public interface TransferListener 6 | { 7 | public void transferStatusChanged (TransferStatus status, Transfer transfer); 8 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/orders/BufferAddressSource.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.orders; 2 | 3 | public interface BufferAddressSource 4 | { 5 | public BufferAddress getBufferAddress (); 6 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/orders/InsertCursorOrder.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.orders; 2 | 3 | import com.bytezone.dm3270.display.DisplayScreen; 4 | import com.bytezone.dm3270.display.Pen; 5 | 6 | public class InsertCursorOrder extends Order 7 | { 8 | public InsertCursorOrder (byte[] buffer, int offset) 9 | { 10 | assert buffer[offset] == Order.INSERT_CURSOR; 11 | 12 | this.buffer = new byte[1]; 13 | this.buffer[0] = buffer[offset]; 14 | } 15 | 16 | public InsertCursorOrder () 17 | { 18 | this.buffer = new byte[1]; 19 | this.buffer[0] = Order.INSERT_CURSOR; 20 | } 21 | 22 | @Override 23 | public void process (DisplayScreen screen) 24 | { 25 | Pen pen = screen.getPen (); 26 | screen.insertCursor (pen.getPosition ()); 27 | } 28 | 29 | @Override 30 | public String toString () 31 | { 32 | return "IC"; 33 | } 34 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/plugins/Plugin.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.plugins; 2 | 3 | public interface Plugin 4 | { 5 | default void activate () 6 | { 7 | } 8 | 9 | default void deactivate () 10 | { 11 | } 12 | 13 | default boolean doesAuto () 14 | { 15 | return false; 16 | } 17 | 18 | default boolean doesRequest () 19 | { 20 | return false; 21 | } 22 | 23 | default void processAuto (PluginData screen) 24 | { 25 | } 26 | 27 | default void processRequest (PluginData screen) 28 | { 29 | } 30 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/replyfield/AuxilliaryDevices.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.replyfield; 2 | 3 | public class AuxilliaryDevices extends QueryReplyField 4 | { 5 | byte flags1; 6 | byte flags2; 7 | 8 | public AuxilliaryDevices () 9 | { 10 | super (AUXILLIARY_DEVICE_REPLY); 11 | 12 | int ptr = createReply (2); 13 | reply[ptr++] = 0; 14 | reply[ptr++] = 0; 15 | 16 | checkDataLength (ptr); 17 | } 18 | 19 | public AuxilliaryDevices (byte[] buffer) 20 | { 21 | super (buffer); 22 | 23 | assert data[1] == AUXILLIARY_DEVICE_REPLY; 24 | 25 | flags1 = data[2]; 26 | flags2 = data[3]; 27 | } 28 | 29 | @Override 30 | public String toString () 31 | { 32 | StringBuilder text = new StringBuilder (super.toString ()); 33 | 34 | text.append (String.format ("%n flags1 : %02X", flags1)); 35 | text.append (String.format ("%n flags2 : %02X", flags2)); 36 | return text.toString (); 37 | } 38 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/replyfield/DefaultReply.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.replyfield; 2 | 3 | import com.bytezone.dm3270.utilities.Dm3270Utility; 4 | 5 | public class DefaultReply extends QueryReplyField 6 | { 7 | public DefaultReply (byte[] buffer) 8 | { 9 | super (buffer); 10 | System.out.printf ("Unknown reply field: %02X%n", buffer[0]); 11 | System.out.println (Dm3270Utility.toHex (buffer)); 12 | } 13 | 14 | @Override 15 | public String toString () 16 | { 17 | StringBuilder text = new StringBuilder (super.toString ()); 18 | 19 | text.append (String.format ("%n%n%s", Dm3270Utility.toHex (data))); 20 | 21 | return text.toString (); 22 | } 23 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/replyfield/Segment.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.replyfield; 2 | 3 | public class Segment extends QueryReplyField 4 | { 5 | public Segment (byte[] buffer) 6 | { 7 | super (buffer); 8 | 9 | assert data[1] == SEGMENT_REPLY; 10 | } 11 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/replyfield/Transparency.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.replyfield; 2 | 3 | public class Transparency extends QueryReplyField 4 | { 5 | public Transparency (byte[] buffer) 6 | { 7 | super (buffer); 8 | 9 | assert data[1] == TRANSPARENCY_REPLY; 10 | } 11 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/session/SessionTable.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.session; 2 | 3 | import com.bytezone.dm3270.utilities.DefaultTable; 4 | 5 | public class SessionTable extends DefaultTable 6 | { 7 | public SessionTable () 8 | { 9 | addColumnString ("mm:ss", 45, Justification.LEFT, "time"); 10 | addColumnString ("Source", 55, Justification.LEFT, "sourceName"); 11 | addColumnString ("Type", 70, Justification.LEFT, "commandType"); 12 | addColumnString ("Command", 80, Justification.LEFT, "commandName"); 13 | addColumnNumber ("Size", 55, "bufferSize"); 14 | 15 | setPrefWidth (337); 16 | } 17 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/streams/BufferListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.streams; 2 | 3 | import java.time.LocalDateTime; 4 | 5 | import com.bytezone.dm3270.streams.TelnetSocket.Source; 6 | 7 | public interface BufferListener 8 | { 9 | public void listen (Source targetRole, byte[] message, LocalDateTime dateTime, 10 | boolean genuine); 11 | 12 | public void close (); 13 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/streams/TelnetStateListener.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.streams; 2 | 3 | public interface TelnetStateListener 4 | { 5 | public void telnetStateChanged (TelnetState telnetState); 6 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/structuredfields/DefaultStructuredField.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.structuredfields; 2 | 3 | import com.bytezone.dm3270.display.Screen; 4 | import com.bytezone.dm3270.utilities.Dm3270Utility; 5 | 6 | public class DefaultStructuredField extends StructuredField 7 | { 8 | public DefaultStructuredField (byte[] buffer, int offset, int length) 9 | { 10 | super (buffer, offset, length); 11 | } 12 | 13 | @Override 14 | public void process (Screen screen) 15 | { 16 | 17 | } 18 | 19 | @Override 20 | public String toString () 21 | { 22 | StringBuilder text = new StringBuilder (); 23 | text.append (String.format ("Unknown SF : %02X%n", data[0])); 24 | text.append (Dm3270Utility.toHex (data)); 25 | return text.toString (); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/telnet/TelnetCommandProcessor.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.telnet; 2 | 3 | public interface TelnetCommandProcessor 4 | { 5 | public void processData (byte[] buffer, int length); 6 | 7 | public void processRecord (byte[] buffer, int length); 8 | 9 | public void processTelnetCommand (byte[] buffer, int length); 10 | 11 | public void processTelnetSubcommand (byte[] buffer, int length); 12 | } -------------------------------------------------------------------------------- /terminal-driver/src/main/java/com/bytezone/dm3270/utilities/ISite.java: -------------------------------------------------------------------------------- 1 | package com.bytezone.dm3270.utilities; 2 | 3 | public interface ISite 4 | { 5 | public String getName(); 6 | public String getURL(); 7 | public int getPort(); 8 | public boolean getExtended(); 9 | public int getModel(); 10 | public boolean getPlugins(); 11 | public String getFolder(); 12 | } 13 | -------------------------------------------------------------------------------- /terminal-driver/src/main/java/org/xframium/terminal/driver/screen/model/package-info.java: -------------------------------------------------------------------------------- 1 | // 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 3 | // See http://java.sun.com/xml/jaxb 4 | // Any modifications to this file will be lost upon recompilation of the source schema. 5 | // Generated on: 2017.11.03 at 10:28:07 PM EDT 6 | // 7 | 8 | @javax.xml.bind.annotation.XmlSchema(namespace = "http://www.xframium.org/terminal-screen-model", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 9 | package org.xframium.terminal.driver.screen.model; 10 | -------------------------------------------------------------------------------- /terminal-driver/src/test/resources/test.properties: -------------------------------------------------------------------------------- 1 | test.app.file=c:/Users/Dad/projects/moreland/xframium-java/terminal-driver/src/test/resources/TestApp.xml 2 | test.app.name=sim390 3 | test.app.start=SystemBanner 4 | test.terminal.host=127.0.0.1 5 | test.terminal.port=2023 6 | test.terminal.type=2 7 | test.terminal.visible=true 8 | test.app.images=c:/Users/Dad/projects/moreland/xframium-java/terminal-driver/target 9 | -------------------------------------------------------------------------------- /testing/.gitignore: -------------------------------------------------------------------------------- 1 | /test-output/ 2 | /cloudRegistry.xml 3 | -------------------------------------------------------------------------------- /testing/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | xframium-testing 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /testing/data/testData.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /testing/functions/xTest/Report Test Success.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Reports the current value of the test success flag 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /testing/functions/xTest/andSet.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /testing/functions/xTest/callDataChange.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /testing/functions/xTest/checkData.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This is a sample function 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /testing/functions/xTest/checkData2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This is a sample function 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /testing/functions/xTest/error function.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /testing/functions/xTest/kw-call.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /testing/functions/xTest/kw-dumpstate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/functions/xTest/kw-flow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Tests the flow control functionality 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /testing/functions/xTest/kw-math.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /testing/functions/xTest/kw-visual.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Tests of the Perfecto VISUAL keyword 5 | 6 | 7 | -------------------------------------------------------------------------------- /testing/functions/xTest/kw-wait.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /testing/functions/xTest/orSet.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /testing/functions/xTest/setValue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /testing/functions/xTest/setValue2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /testing/functions/xTest/setValueFromElement.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /testing/functions/xTest/setValueFromNumericIndex.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /testing/html/testing2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | xFramium Second Page 6 | 7 | 8 | 9 | 10 |
11 | 12 |
13 |
14 |
15 |
screen two
16 |
17 |
18 | 19 |
20 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/New Test Suite/Google Home/Results/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/New Test Suite/Google Home/Results/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/New Test Suite/wikipedia/home/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/New Test Suite/wikipedia/home/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/xTest/Microsoft/home/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/xTest/Microsoft/home/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/xTest/Wiki/Article/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/xTest/Wiki/Article/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/xTest/Wiki/English Home/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/xTest/Wiki/English Home/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/xTest/Wiki/German Home/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/xTest/Wiki/German Home/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/xTest/Wiki/Home/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/xTest/Wiki/Home/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/xTest/xTest/Home2/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/xTest/xTest/Home2/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/xTest/xTest/eBaums/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/xTest/xTest/eBaums/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/xTest/xTest/home/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/xTest/xTest/home/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/xTest/xTest/page two/Firefox Windows 8.1 firefox 46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/xTest/xTest/page two/Firefox Windows 8.1 firefox 46.png -------------------------------------------------------------------------------- /testing/objectRepository/synthetics/xTest/xf/home/Android Chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/objectRepository/synthetics/xTest/xf/home/Android Chrome.png -------------------------------------------------------------------------------- /testing/objectRepository/xTest/Settings/page-Safari.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /testing/objectRepository/xTest/Settings/site-Settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /testing/objectRepository/xTest/objectRepository.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /testing/objectRepository/xTest/xF_Native/page-xF-Application Notifications.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/objectRepository/xTest/xF_Native/page-xF-Device Management.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /testing/objectRepository/xTest/xF_Native/page-xF-General.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /testing/objectRepository/xTest/xF_Native/page-xF_Notification.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /testing/objectRepository/xTest/xF_Native/site-xF_Native.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /testing/objectRepository/xTest/xTest/page-page two.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /testing/objectRepository/xTest/xTest/site-xTest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /testing/pageData/pageData.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/testing/pageData/pageData.xlsx -------------------------------------------------------------------------------- /testing/tests/xTest/Accessibility Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Accessibility Test 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /testing/tests/xTest/Alert Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Alert Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Align Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Align Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Attribute Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Attribute Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Browser Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Browser Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Cache Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Cache Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Call Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Call Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Click Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Click Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Comparison Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Comparison Test 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /testing/tests/xTest/ERROR Test 2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | null 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /testing/tests/xTest/Else Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Else Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Exists Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exists Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Focus Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Focus Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/GET Value Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | GET Value Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/JS Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | JS Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/LEGACY Compare Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Compare Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Loop Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Loop Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Math Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Math Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Mouse Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mouse Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Navigate Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Navigate Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Operator Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Operator Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Random Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Random Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Report Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Report Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/SET Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SET Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/State Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | State Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/String Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | String Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Verify Color Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Verify Color Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Verify Contrast Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Verify Contrast Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Visible Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Visible Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Visual Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Visual Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Wait For Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Wait For Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/Wait Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Wait Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/WebService Test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | WebService Test 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /testing/tests/xTest/xFramium Flow Control.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This will test the flow control methods to ensure that the test exists 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /testing/tests/xTest/xFramium NATIVE Airplane.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Test the Perfecto NATIVE Airplane Commands 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /testing/tests/xTest/xFramium NATIVE Data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Test the Perfecto NATIVE Data Commands 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /testing/tests/xTest/xFramium NATIVE Location.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Test the Perfecto NATIVE Location Commands 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /testing/tests/xTest/xFramium NATIVE Trust.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Test trusting of an application developer 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /testing/tests/xTest/xFramium NATIVE Wifi.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Test the Perfecto NATIVE WiFi Commands 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /testing/tests/xTest/xFramium Page Element Context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Tests that the specified step is ignored for a specific OS type 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /testing/ws-payload.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {loanAmount} 6 | {extraCost} 7 | {interestRate} 8 | {months} 9 | 10 | 11 | -------------------------------------------------------------------------------- /xframium-driver-1.0.6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/xframium-driver-1.0.6.zip -------------------------------------------------------------------------------- /xframium-testing-java/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /xframium-testing-java/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /target/ 3 | /test-output/ 4 | -------------------------------------------------------------------------------- /xframium-testing-java/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | xframium-testing-java 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /xframium-testing-java/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 3 | org.eclipse.jdt.core.compiler.compliance=1.5 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.5 6 | -------------------------------------------------------------------------------- /xframium-testing-java/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /xframium-testing-java/resources/.gitignore: -------------------------------------------------------------------------------- 1 | /cloudRegistry.xml 2 | /test-output/ 3 | -------------------------------------------------------------------------------- /xframium-testing-java/resources/deviceRegistry.out.xml: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /xframium-testing-java/src/org/xframium/examples/java/WebTestDriver.java: -------------------------------------------------------------------------------- 1 | package org.xframium.examples.java; 2 | 3 | import org.xframium.driver.TestDriver; 4 | 5 | public class WebTestDriver extends TestDriver 6 | { 7 | public static void main(String[] args) { 8 | TestDriver.main(args); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /xframium.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xframium/xframium-java/5a71b23756609dfe0a0cbed405308eda42d890dd/xframium.jks --------------------------------------------------------------------------------