diff --git a/tests/e2e/TestConstants.ts b/tests/e2e/TestConstants.ts index 52ffd2e524e..9e4a68fb919 100644 --- a/tests/e2e/TestConstants.ts +++ b/tests/e2e/TestConstants.ts @@ -17,6 +17,11 @@ function getBaseUrl(): string { return baseUrl.replace(/\/$/, ''); } +export enum EditorType { + THEIA = 'theia', + CHE_CODE = 'che-code' +} + export const TestConstants = { /** * Base URL of the application which should be checked @@ -54,6 +59,24 @@ export const TestConstants = { */ TS_SELENIUM_RESOLUTION_HEIGHT: Number(process.env.TS_SELENIUM_RESOLUTION_HEIGHT) || 1080, + /** + * Editor the tests are running against, "code" by default. + * Possible values: "che-code", "theia" + */ + TS_SELENIUM_EDITOR: process.env.TS_SELENIUM_EDITOR || EditorType.CHE_CODE, + + /** + * Base version of VSCode editor for monaco-page-objects, "1.37.0" by default. + */ + TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION: process.env.TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION || '1.37.0', + + /** + * Latest compatible version to be used, based on versions available in + * https://github.com/redhat-developer/vscode-extension-tester/tree/master/locators/lib , + * "1.73.0" by default. + */ + TS_SELENIUM_MONACO_PAGE_OBJECTS_USE_VERSION: process.env.TS_SELENIUM_MONACO_PAGE_OBJECTS_USE_VERSION || '1.73.0', + /** * Default ammount of tries, "5" by default. */ diff --git a/tests/e2e/driver/CheReporter.ts b/tests/e2e/driver/CheReporter.ts index 556718e89d5..233f07ffb50 100644 --- a/tests/e2e/driver/CheReporter.ts +++ b/tests/e2e/driver/CheReporter.ts @@ -13,16 +13,18 @@ import { inversifyConfig } from '..'; import { TYPES, CLASSES } from '..'; import * as fs from 'fs'; import * as rm from 'rimraf'; -import { TestConstants } from '../TestConstants'; +import { EditorType, TestConstants } from '../TestConstants'; import { logging } from 'selenium-webdriver'; import { DriverHelper } from '../utils/DriverHelper'; import { ScreenCatcher } from '../utils/ScreenCatcher'; import { ITestWorkspaceUtil } from '../utils/workspace/ITestWorkspaceUtil'; -// import { PreferencesHandler } from '../utils/PreferencesHandler'; +import { AskForConfirmationTypeTheia, PreferencesHandlerTheia, TerminalRendererTypeTheia } from '../utils/theia/PreferencesHandlerTheia'; import { CheApiRequestHandler } from '../utils/requestHandlers/CheApiRequestHandler'; import { TimeoutConstants } from '../TimeoutConstants'; import { Logger } from '../utils/Logger'; import { Sanitizer } from '../utils/Sanitizer'; +import * as monacoPageObjects from 'monaco-page-objects'; +import * as vscodeExtensionTesterLocators from 'vscode-extension-tester-locators'; const e2eContainer = inversifyConfig.e2eContainer; const driver: IDriver = e2eContainer.get(TYPES.Driver); @@ -32,7 +34,6 @@ const sanitizer: Sanitizer = e2eContainer.get(CLASSES.Sanitizer); let methodIndex: number = 0; let deleteScreencast: boolean = true; let testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil); -// let preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); class CheReporter extends mocha.reporters.Spec { @@ -56,6 +57,8 @@ class CheReporter extends mocha.reporters.Spec { TS_SELENIUM_USERNAME: ${TestConstants.TS_SELENIUM_USERNAME} TS_SELENIUM_PASSWORD: ${TestConstants.TS_SELENIUM_PASSWORD} + TS_SELENIUM_EDITOR: ${TestConstants.TS_SELENIUM_EDITOR} + TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME: ${TestConstants.TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME} TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS: ${TestConstants.TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS} TS_SELENIUM_REPORT_FOLDER: ${TestConstants.TS_SELENIUM_REPORT_FOLDER} @@ -86,8 +89,16 @@ class CheReporter extends mocha.reporters.Spec { if (TestConstants.TS_SELENIUM_RESPONSE_INTERCEPTOR) { CheApiRequestHandler.enableResponseInterceptor(); } - // await preferencesHandler.setConfirmExit(AskForConfirmationType.never); - // await preferencesHandler.setTerminalType(TerminalRendererType.dom); + + if (TestConstants.TS_SELENIUM_EDITOR === EditorType.THEIA) { + let preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); + await preferencesHandler.setConfirmExit(AskForConfirmationTypeTheia.never); + await preferencesHandler.setTerminalType(TerminalRendererTypeTheia.dom); + } else if (TestConstants.TS_SELENIUM_EDITOR === EditorType.CHE_CODE) { + // init vscode-extension-tester monaco-page-objects + monacoPageObjects.initPageObjects(TestConstants.TS_SELENIUM_MONACO_PAGE_OBJECTS_USE_VERSION, TestConstants.TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION, vscodeExtensionTesterLocators.getLocatorsPath(), driver.get(), 'google-chrome'); + } + }); runner.on('test', async function (test: mocha.Test) { diff --git a/tests/e2e/driver/ChromeDriver.ts b/tests/e2e/driver/ChromeDriver.ts index c5ff7d9e44a..066230e9612 100644 --- a/tests/e2e/driver/ChromeDriver.ts +++ b/tests/e2e/driver/ChromeDriver.ts @@ -22,17 +22,19 @@ export class ChromeDriver implements IDriver { constructor() { const options: Options = this.getDriverOptions(); this.driver = this.getDriverBuilder(options).build(); - - this.driver - .manage() - .window() - .setSize(TestConstants.TS_SELENIUM_RESOLUTION_WIDTH, TestConstants.TS_SELENIUM_RESOLUTION_HEIGHT); } get(): ThenableWebDriver { return this.driver; } + async setWindowSize() { + await this.driver + .manage() + .window() + .setSize(TestConstants.TS_SELENIUM_RESOLUTION_WIDTH, TestConstants.TS_SELENIUM_RESOLUTION_HEIGHT); + } + private getDriverOptions(): Options { let options: Options = new Options() .addArguments('--no-sandbox') diff --git a/tests/e2e/index.ts b/tests/e2e/index.ts index 6b51da14082..d7e74e082bf 100644 --- a/tests/e2e/index.ts +++ b/tests/e2e/index.ts @@ -10,7 +10,7 @@ export * from './utils/AnimationChecker'; export * from './utils/BrowserTabsUtil'; export * from './utils/DriverHelper'; export * from './utils/Logger'; -export * from './utils/PreferencesHandler'; +export * from './utils/theia/PreferencesHandlerTheia'; export * from './utils/requestHandlers/CheApiRequestHandler'; export * from './utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler'; export * from './utils/requestHandlers/headers/IAuthorizationHeaderHandler'; @@ -30,28 +30,28 @@ export * from './pageobjects/dashboard/Dashboard'; export * from './pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins'; export * from './pageobjects/dashboard/workspace-details/WorkspaceDetails'; export * from './pageobjects/dashboard/Workspaces'; -export * from './pageobjects/ide/ContextMenu'; -export * from './pageobjects/ide/DebugView'; -export * from './pageobjects/ide/DialogWindow'; -export * from './pageobjects/ide/Editor'; -export * from './pageobjects/ide/Ide'; -export * from './pageobjects/ide/LeftToolBar'; -export * from './pageobjects/ide/NavigationBar'; -export * from './pageobjects/ide/NotificationCenter'; -export * from './pageobjects/ide/OpenDialogWidget'; -export * from './pageobjects/ide/OpenEditors'; -export * from './pageobjects/ide/OpenWorkspaceWidget'; -export * from './pageobjects/ide/plugins/GitHubPullRequestPlugin'; -export * from './pageobjects/ide/plugins/GitPlugin'; -export * from './pageobjects/ide/plugins/KubernetesPlugin'; -export * from './pageobjects/ide/plugins/OpenshiftPlugin'; -export * from './pageobjects/ide/plugins/PluginsView'; -export * from './pageobjects/ide/PreviewWidget'; -export * from './pageobjects/ide/ProjectTree'; -export * from './pageobjects/ide/QuickOpenContainer'; -export * from './pageobjects/ide/RightToolBar'; -export * from './pageobjects/ide/Terminal'; -export * from './pageobjects/ide/TopMenu'; +export * from './pageobjects/ide/theia/ContextMenu'; +export * from './pageobjects/ide/theia/DebugView'; +export * from './pageobjects/ide/theia/DialogWindow'; +export * from './pageobjects/ide/theia/Editor'; +export * from './pageobjects/ide/theia/Ide'; +export * from './pageobjects/ide/theia/LeftToolBar'; +export * from './pageobjects/ide/theia/NavigationBar'; +export * from './pageobjects/ide/theia/NotificationCenter'; +export * from './pageobjects/ide/theia/OpenDialogWidget'; +export * from './pageobjects/ide/theia/OpenEditors'; +export * from './pageobjects/ide/theia/OpenWorkspaceWidget'; +export * from './pageobjects/ide/theia/plugins/GitHubPullRequestPlugin'; +export * from './pageobjects/ide/theia/plugins/GitPlugin'; +export * from './pageobjects/ide/theia/plugins/KubernetesPlugin'; +export * from './pageobjects/ide/theia/plugins/OpenshiftPlugin'; +export * from './pageobjects/ide/theia/plugins/PluginsView'; +export * from './pageobjects/ide/theia/PreviewWidget'; +export * from './pageobjects/ide/theia/ProjectTree'; +export * from './pageobjects/ide/theia/QuickOpenContainer'; +export * from './pageobjects/ide/theia/RightToolBar'; +export * from './pageobjects/ide/theia/Terminal'; +export * from './pageobjects/ide/theia/TopMenu'; export * from './pageobjects/login/ICheLoginPage'; export * from './pageobjects/login/IOcpLoginPage'; export * from './pageobjects/login/MultiUserLoginPage'; @@ -62,7 +62,7 @@ export * from './pageobjects/openshift/CheLoginPage'; export * from './pageobjects/openshift/OcpLoginPage'; export * from './pageobjects/third-parties/GitLoginPage'; export * from './pageobjects/third-parties/GitOauthAppsSettings'; -export * from './testsLibrary/CodeExecutionTests'; -export * from './testsLibrary/LanguageServerTests'; -export * from './testsLibrary/ProjectAndFileTests'; +export * from './testsLibrary/theia/CodeExecutionTestsTheia'; +export * from './testsLibrary/theia/LanguageServerTestsTheia'; +export * from './testsLibrary/theia/ProjectAndFileTestsTheia'; export * from './testsLibrary/WorkspaceHandlingTests'; diff --git a/tests/e2e/initDefaultValues.sh b/tests/e2e/initDefaultValues.sh index 27adf4242ae..ff684e51092 100755 --- a/tests/e2e/initDefaultValues.sh +++ b/tests/e2e/initDefaultValues.sh @@ -8,6 +8,7 @@ export TS_SELENIUM_PASSWORD=${TS_SELENIUM_PASSWORD:-"admin"} export TS_SELENIUM_MULTIUSER=${TS_SELENIUM_MULTIUSER:-"true"} export TS_SELENIUM_W3C_CHROME_OPTION=${TS_SELENIUM_W3C_CHROME_OPTION:-"true"} export NODE_TLS_REJECT_UNAUTHORIZED=${NODE_TLS_REJECT_UNAUTHORIZED:-0} +export TS_SELENIUM_EDITOR=${TS_SELENIUM_EDITOR:-"che-code"} if [ "$E2E_OCP_CLUSTER_VERSION" = "3.x" ] ; then unset TS_OCP_LOGIN_PAGE_PROVIDER_TITLE @@ -25,3 +26,4 @@ echo "TS_SELENIUM_PASSWORD = ${TS_SELENIUM_PASSWORD}" echo "TS_SELENIUM_MULTIUSER = ${TS_SELENIUM_MULTIUSER}" echo "TS_SELENIUM_W3C_CHROME_OPTION = ${TS_SELENIUM_W3C_CHROME_OPTION}" echo "NODE_TLS_REJECT_UNAUTHORIZED = ${NODE_TLS_REJECT_UNAUTHORIZED}" +echo "TS_SELENIUM_EDITOR = ${TS_SELENIUM_EDITOR}" diff --git a/tests/e2e/initDevfileTests.sh b/tests/e2e/initDevfileTests.sh index 1e059e9eb2c..23491aa7a47 100755 --- a/tests/e2e/initDevfileTests.sh +++ b/tests/e2e/initDevfileTests.sh @@ -9,7 +9,7 @@ launchAllUserstories(){ echo "Launching all userstories"; echo "" - npm run lint && npm run tsc && mocha --config mocha-all-devfiles.json ; + npm run lint && npm run tsc && mocha --config mocha-all-devfiles-${TS_SELENIUM_EDITOR}.json ; } launchSingleUserstory(){ @@ -17,11 +17,11 @@ launchSingleUserstory(){ echo "Launching the \"${USERSTORY}\" userstory"; echo "" - tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/${USERSTORY}.spec.js ; + tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/${TS_SELENIUM_EDITOR}/${USERSTORY}.spec.js ; } checkUserstoryName(){ - local checkedName="$(ls tests/devfiles | grep ${USERSTORY}.spec.ts)"; + local checkedName="$(ls tests/devfiles/${TS_SELENIUM_EDITOR} | grep ${USERSTORY}.spec.ts)"; if [ -z "$checkedName" ]; then echo "" diff --git a/tests/e2e/initPluginTest.sh b/tests/e2e/initPluginTest.sh index c86cf889d8c..882eaabf9f2 100755 --- a/tests/e2e/initPluginTest.sh +++ b/tests/e2e/initPluginTest.sh @@ -6,4 +6,4 @@ echo "" echo "Launching the \"${USERSTORY}\" userstory"; echo "" -npm run init-mocha-opts -- --spec dist/tests/plugins/${USERSTORY}.spec.js +npm run init-mocha-opts -- --spec dist/tests/plugins/${TS_SELENIUM_EDITOR}/${USERSTORY}.spec.js diff --git a/tests/e2e/inversify.config.ts b/tests/e2e/inversify.config.ts index ddb16453c21..f2e4865abe9 100644 --- a/tests/e2e/inversify.config.ts +++ b/tests/e2e/inversify.config.ts @@ -19,30 +19,30 @@ import { TestConstants } from './TestConstants'; import { ICheLoginPage } from './pageobjects/login/ICheLoginPage'; import { RegularUserOcpCheLoginPage } from './pageobjects/login/RegularUserOcpCheLoginPage'; import { MultiUserLoginPage } from './pageobjects/login/MultiUserLoginPage'; -import { ContextMenu } from './pageobjects/ide/ContextMenu'; +import { ContextMenu } from './pageobjects/ide/theia/ContextMenu'; import { DriverHelper } from './utils/DriverHelper'; import { Dashboard } from './pageobjects/dashboard/Dashboard'; import { Workspaces } from './pageobjects/dashboard/Workspaces'; import { WorkspaceDetails } from './pageobjects/dashboard/workspace-details/WorkspaceDetails'; import { WorkspaceDetailsPlugins } from './pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins'; -import { Ide } from './pageobjects/ide/Ide'; -import { ProjectTree } from './pageobjects/ide/ProjectTree'; -import { OpenEditors } from './pageobjects/ide/OpenEditors'; -import { Editor } from './pageobjects/ide/Editor'; -import { TopMenu } from './pageobjects/ide/TopMenu'; -import { QuickOpenContainer } from './pageobjects/ide/QuickOpenContainer'; -import { PreviewWidget } from './pageobjects/ide/PreviewWidget'; -import { GitPlugin } from './pageobjects/ide/plugins/GitPlugin'; -import { RightToolBar } from './pageobjects/ide/RightToolBar'; -import { Terminal } from './pageobjects/ide/Terminal'; -import { DebugView } from './pageobjects/ide/DebugView'; -import { DialogWindow } from './pageobjects/ide/DialogWindow'; +import { Ide } from './pageobjects/ide/theia/Ide'; +import { ProjectTree } from './pageobjects/ide/theia/ProjectTree'; +import { OpenEditors } from './pageobjects/ide/theia/OpenEditors'; +import { Editor } from './pageobjects/ide/theia/Editor'; +import { TopMenu } from './pageobjects/ide/theia/TopMenu'; +import { QuickOpenContainer } from './pageobjects/ide/theia/QuickOpenContainer'; +import { PreviewWidget } from './pageobjects/ide/theia/PreviewWidget'; +import { GitPlugin } from './pageobjects/ide/theia/plugins/GitPlugin'; +import { RightToolBar } from './pageobjects/ide/theia/RightToolBar'; +import { Terminal } from './pageobjects/ide/theia/Terminal'; +import { DebugView } from './pageobjects/ide/theia/DebugView'; +import { DialogWindow } from './pageobjects/ide/theia/DialogWindow'; import { ScreenCatcher } from './utils/ScreenCatcher'; import { OcpLoginPage } from './pageobjects/openshift/OcpLoginPage'; -import { OpenWorkspaceWidget } from './pageobjects/ide/OpenWorkspaceWidget'; +import { OpenWorkspaceWidget } from './pageobjects/ide/theia/OpenWorkspaceWidget'; import { CheLoginPage } from './pageobjects/openshift/CheLoginPage'; -import { NotificationCenter } from './pageobjects/ide/NotificationCenter'; -import { PreferencesHandler } from './utils/PreferencesHandler'; +import { NotificationCenter } from './pageobjects/ide/theia/NotificationCenter'; +import { PreferencesHandlerTheia } from './utils/theia/PreferencesHandlerTheia'; import { IAuthorizationHeaderHandler } from './utils/requestHandlers/headers/IAuthorizationHeaderHandler'; import { CheMultiuserAuthorizationHeaderHandler } from './utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler'; import { CheMultiuserTokenHandler } from './utils/requestHandlers/tokens/CheMultiuserTokenHandler'; @@ -51,24 +51,24 @@ import { CheApiRequestHandler } from './utils/requestHandlers/CheApiRequestHandl import { CheGitApi } from './utils/VCS/CheGitApi'; import { GitHubUtil } from './utils/VCS/github/GitHubUtil'; import { CreateWorkspace } from './pageobjects/dashboard/CreateWorkspace'; -import { OpenshiftPlugin } from './pageobjects/ide/plugins/OpenshiftPlugin'; -import { OpenDialogWidget } from './pageobjects/ide/OpenDialogWidget'; +import { OpenshiftPlugin } from './pageobjects/ide/theia/plugins/OpenshiftPlugin'; +import { OpenDialogWidget } from './pageobjects/ide/theia/OpenDialogWidget'; import { UpdateAccountInformationPage } from './pageobjects/login/UpdateAccountInformationPage'; -import { LeftToolBar } from './pageobjects/ide/LeftToolBar'; -import { KubernetesPlugin } from './pageobjects/ide/plugins/KubernetesPlugin'; +import { LeftToolBar } from './pageobjects/ide/theia/LeftToolBar'; +import { KubernetesPlugin } from './pageobjects/ide/theia/plugins/KubernetesPlugin'; import { BrowserTabsUtil } from './utils/BrowserTabsUtil'; -import { PluginsView } from './pageobjects/ide/plugins/PluginsView'; -import { LanguageServerTests } from './testsLibrary/LanguageServerTests'; -import { CodeExecutionTests } from './testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from './testsLibrary/ProjectAndFileTests'; +import { PluginsView } from './pageobjects/ide/theia/plugins/PluginsView'; +import { LanguageServerTestsTheia } from './testsLibrary/theia/LanguageServerTestsTheia'; +import { CodeExecutionTestsTheia } from './testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from './testsLibrary/theia/ProjectAndFileTestsTheia'; import { WorkspaceHandlingTests } from './testsLibrary/WorkspaceHandlingTests'; -import { GitHubPullRequestPlugin } from './pageobjects/ide/plugins/GitHubPullRequestPlugin'; +import { GitHubPullRequestPlugin } from './pageobjects/ide/theia/plugins/GitHubPullRequestPlugin'; import { GitLoginPage } from './pageobjects/third-parties/GitLoginPage'; import { GitOauthAppsSettings } from './pageobjects/third-parties/GitOauthAppsSettings'; import { AnimationChecker } from './utils/AnimationChecker'; import { WorkspaceNameHandler } from './utils/WorkspaceNameHandler'; import { Sanitizer } from './utils/Sanitizer'; -import { NavigationBar } from './pageobjects/ide/NavigationBar'; +import { NavigationBar } from './pageobjects/ide/theia/NavigationBar'; import { ApiUrlResolver } from './utils/workspace/ApiUrlResolver'; import { ITestWorkspaceUtil } from './utils/workspace/ITestWorkspaceUtil'; @@ -112,7 +112,7 @@ e2eContainer.bind(CLASSES.OcpLoginPage).to(OcpLoginPage); e2eContainer.bind(CLASSES.OpenWorkspaceWidget).to(OpenWorkspaceWidget); e2eContainer.bind(CLASSES.CheLoginPage).to(CheLoginPage); e2eContainer.bind(CLASSES.NotificationCenter).to(NotificationCenter); -e2eContainer.bind(CLASSES.PreferencesHandler).to(PreferencesHandler); +e2eContainer.bind(CLASSES.PreferencesHandlerTheia).to(PreferencesHandlerTheia); e2eContainer.bind(CLASSES.CheApiRequestHandler).to(CheApiRequestHandler); e2eContainer.bind(CLASSES.CheGitApi).to(CheGitApi); e2eContainer.bind(CLASSES.GitHubUtil).to(GitHubUtil); @@ -122,9 +122,9 @@ e2eContainer.bind(CLASSES.OpenDialogWidget).to(OpenDialogWidge e2eContainer.bind(CLASSES.UpdateAccountInformationPage).to(UpdateAccountInformationPage); e2eContainer.bind(CLASSES.KubernetesPlugin).to(KubernetesPlugin); e2eContainer.bind(CLASSES.PluginsView).to(PluginsView); -e2eContainer.bind(CLASSES.LanguageServerTests).to(LanguageServerTests); -e2eContainer.bind(CLASSES.CodeExecutionTests).to(CodeExecutionTests); -e2eContainer.bind(CLASSES.ProjectAndFileTests).to(ProjectAndFileTests); +e2eContainer.bind(CLASSES.LanguageServerTestsTheia).to(LanguageServerTestsTheia); +e2eContainer.bind(CLASSES.CodeExecutionTestsTheia).to(CodeExecutionTestsTheia); +e2eContainer.bind(CLASSES.ProjectAndFileTestsTheia).to(ProjectAndFileTestsTheia); e2eContainer.bind(CLASSES.WorkspaceHandlingTests).to(WorkspaceHandlingTests); e2eContainer.bind(CLASSES.WorkspaceNameHandler).to(WorkspaceNameHandler); e2eContainer.bind(CLASSES.GitHubPullRequestPlugin).to(GitHubPullRequestPlugin); diff --git a/tests/e2e/inversify.types.ts b/tests/e2e/inversify.types.ts index 57c60fccf86..f4393f5d361 100644 --- a/tests/e2e/inversify.types.ts +++ b/tests/e2e/inversify.types.ts @@ -48,7 +48,7 @@ const CLASSES = { CheGitApi: 'CheGitApi', GitPlugin: 'GitPlugin', NotificationCenter: 'NotificationCenter', - PreferencesHandler: 'PreferencesHandler', + PreferencesHandlerTheia: 'PreferencesHandlerTheia', CheApiRequestHandler: 'CheApiRequestHandler', CreateWorkspace: 'CreateWorkspace', OpenDialogWidget: 'OpenDialogWidget', @@ -56,9 +56,9 @@ const CLASSES = { KubernetesPlugin: 'KubernetesPlugin', BrowserTabsUtil: 'BrowserTabsUtil', PluginsView: 'PluginsView', - LanguageServerTests: 'LanguageServerTests', - CodeExecutionTests: 'CodeExecutionTests', - ProjectAndFileTests: 'ProjectAndFileTests', + LanguageServerTestsTheia: 'LanguageServerTestsTheia', + CodeExecutionTestsTheia: 'CodeExecutionTestsTheia', + ProjectAndFileTestsTheia: 'ProjectAndFileTestsTheia', WorkspaceHandlingTests: 'WorkspaceHandlingTests', WorkspaceNameHandler: 'WorkspaceNameHandler', GitHubPullRequestPlugin: 'GitHubPullRequestPlugin', diff --git a/tests/e2e/mocha-all-devfiles.json b/tests/e2e/mocha-all-devfiles-theia.json similarity index 69% rename from tests/e2e/mocha-all-devfiles.json rename to tests/e2e/mocha-all-devfiles-theia.json index 67b281655e2..6ee9f3e2378 100644 --- a/tests/e2e/mocha-all-devfiles.json +++ b/tests/e2e/mocha-all-devfiles-theia.json @@ -6,7 +6,7 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/devfiles/*.spec.js", - "dist/tests/e2e/FactoryUrl.spec.js" + "dist/tests/devfiles/theia/*.spec.js", + "dist/tests/e2e/theia/FactoryUrl.spec.js" ] } diff --git a/tests/e2e/mocha-git-ssh.json b/tests/e2e/mocha-all-factories-code.json similarity index 83% rename from tests/e2e/mocha-git-ssh.json rename to tests/e2e/mocha-all-factories-code.json index 80c18db0aa4..be9febe44d2 100644 --- a/tests/e2e/mocha-git-ssh.json +++ b/tests/e2e/mocha-all-factories-code.json @@ -6,6 +6,6 @@ "full-trace": true, "require": "source-map-support/register", "spec": [ - "dist/tests/e2e/GitSsh.spec.js" + "dist/tests/login/Login.spec.js" ] } diff --git a/tests/e2e/mocha-all-factories.json b/tests/e2e/mocha-all-factories-theia.json similarity index 58% rename from tests/e2e/mocha-all-factories.json rename to tests/e2e/mocha-all-factories-theia.json index efad2697432..93601a49854 100644 --- a/tests/e2e/mocha-all-factories.json +++ b/tests/e2e/mocha-all-factories-theia.json @@ -7,7 +7,7 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.js", - "dist/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js" + "dist/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.js", + "dist/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js" ] } diff --git a/tests/e2e/mocha-all-plugins-code.json b/tests/e2e/mocha-all-plugins-code.json new file mode 100644 index 00000000000..7fe88ce696e --- /dev/null +++ b/tests/e2e/mocha-all-plugins-code.json @@ -0,0 +1,10 @@ +{ + "timeout": "2200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "full-trace": true, + "require": "source-map-support/register", + "spec": [ + "dist/tests/login/Login.spec.js" + ] +} diff --git a/tests/e2e/mocha-all-plugins.json b/tests/e2e/mocha-all-plugins-theia.json similarity index 65% rename from tests/e2e/mocha-all-plugins.json rename to tests/e2e/mocha-all-plugins-theia.json index 9db8aa07935..a6c9c08ddc4 100644 --- a/tests/e2e/mocha-all-plugins.json +++ b/tests/e2e/mocha-all-plugins-theia.json @@ -6,7 +6,7 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/plugins/VscodeXmlPlugin.spec.js", - "dist/tests/plugins/VscodeYamlPlugin.spec.js" + "dist/tests/plugins/theia/VscodeXmlPlugin.spec.js", + "dist/tests/plugins/theia/VscodeYamlPlugin.spec.js" ] } diff --git a/tests/e2e/mocha.json b/tests/e2e/mocha-code.json similarity index 62% rename from tests/e2e/mocha.json rename to tests/e2e/mocha-code.json index 2889f8d6a83..443cbaa6f06 100644 --- a/tests/e2e/mocha.json +++ b/tests/e2e/mocha-code.json @@ -4,5 +4,5 @@ "ui": "tdd", "bail": true, "full-trace": true, - "spec": ["dist/tests/login/Login.spec.js", "dist/tests/e2e/*.spec.js"] + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/e2e/code/*.spec.js"] } diff --git a/tests/e2e/mocha-connector.json b/tests/e2e/mocha-connector-theia.json similarity index 74% rename from tests/e2e/mocha-connector.json rename to tests/e2e/mocha-connector-theia.json index ad437c9d61f..bd4ce2599d5 100644 --- a/tests/e2e/mocha-connector.json +++ b/tests/e2e/mocha-connector-theia.json @@ -5,5 +5,5 @@ "bail": true, "full-trace": true, "require": "source-map-support/register", - "spec": "dist/tests/e2e/OpenshiftConnector.spec.js" + "spec": "dist/tests/e2e/theia/OpenshiftConnector.spec.js" } diff --git a/tests/e2e/mocha-devworkspace-happy-path-code.json b/tests/e2e/mocha-devworkspace-happy-path-code.json new file mode 100644 index 00000000000..7fe88ce696e --- /dev/null +++ b/tests/e2e/mocha-devworkspace-happy-path-code.json @@ -0,0 +1,10 @@ +{ + "timeout": "2200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "full-trace": true, + "require": "source-map-support/register", + "spec": [ + "dist/tests/login/Login.spec.js" + ] +} diff --git a/tests/e2e/mocha-devworkspace-happy-path.json b/tests/e2e/mocha-devworkspace-happy-path-theia.json similarity index 75% rename from tests/e2e/mocha-devworkspace-happy-path.json rename to tests/e2e/mocha-devworkspace-happy-path-theia.json index f13e347a6a9..6f63b49e373 100644 --- a/tests/e2e/mocha-devworkspace-happy-path.json +++ b/tests/e2e/mocha-devworkspace-happy-path-theia.json @@ -6,6 +6,6 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.js" + "dist/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.js" ] } diff --git a/tests/e2e/mocha-factory-code.json b/tests/e2e/mocha-factory-code.json new file mode 100644 index 00000000000..7fe88ce696e --- /dev/null +++ b/tests/e2e/mocha-factory-code.json @@ -0,0 +1,10 @@ +{ + "timeout": "2200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "full-trace": true, + "require": "source-map-support/register", + "spec": [ + "dist/tests/login/Login.spec.js" + ] +} diff --git a/tests/e2e/mocha-factory.json b/tests/e2e/mocha-factory-theia.json similarity index 81% rename from tests/e2e/mocha-factory.json rename to tests/e2e/mocha-factory-theia.json index 895a078b0a5..8b9c107f89a 100644 --- a/tests/e2e/mocha-factory.json +++ b/tests/e2e/mocha-factory-theia.json @@ -6,6 +6,6 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/e2e/FactoryUrl.spec.js" + "dist/tests/e2e/theia/FactoryUrl.spec.js" ] } diff --git a/tests/e2e/mocha-git-publish-branch-theia.json b/tests/e2e/mocha-git-publish-branch-theia.json new file mode 100644 index 00000000000..e5fcccad761 --- /dev/null +++ b/tests/e2e/mocha-git-publish-branch-theia.json @@ -0,0 +1,11 @@ +{ + "timeout": "2200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "require": "source-map-support/register", + "spec": [ + "dist/tests/e2e/theia/GitPublishBranch.spec.js" + ] +} diff --git a/tests/e2e/mocha-git-self-sign-cert-theia.json b/tests/e2e/mocha-git-self-sign-cert-theia.json new file mode 100644 index 00000000000..6ee70cf2153 --- /dev/null +++ b/tests/e2e/mocha-git-self-sign-cert-theia.json @@ -0,0 +1,11 @@ +{ + "timeout": "2200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "require": "source-map-support/register", + "spec": [ + "dist/tests/e2e/theia/GitSelfSignCert.spec.js" + ] +} diff --git a/tests/e2e/mocha-git-self-sign-cert.json b/tests/e2e/mocha-git-ssh-theia.json similarity index 80% rename from tests/e2e/mocha-git-self-sign-cert.json rename to tests/e2e/mocha-git-ssh-theia.json index 9b707fbac75..b9b98a087ab 100644 --- a/tests/e2e/mocha-git-self-sign-cert.json +++ b/tests/e2e/mocha-git-ssh-theia.json @@ -6,6 +6,6 @@ "full-trace": true, "require": "source-map-support/register", "spec": [ - "dist/tests/e2e/GitSelfSignCert.spec.js" + "dist/tests/e2e/theia/GitSsh.spec.js" ] } diff --git a/tests/e2e/mocha-git-publish-branch.json b/tests/e2e/mocha-happy-path-code.json similarity index 80% rename from tests/e2e/mocha-git-publish-branch.json rename to tests/e2e/mocha-happy-path-code.json index a1b574fb825..be9febe44d2 100644 --- a/tests/e2e/mocha-git-publish-branch.json +++ b/tests/e2e/mocha-happy-path-code.json @@ -6,6 +6,6 @@ "full-trace": true, "require": "source-map-support/register", "spec": [ - "dist/tests/e2e/GitPublishBranch.spec.js" + "dist/tests/login/Login.spec.js" ] } diff --git a/tests/e2e/mocha-happy-path.json b/tests/e2e/mocha-happy-path-theia.json similarity index 80% rename from tests/e2e/mocha-happy-path.json rename to tests/e2e/mocha-happy-path-theia.json index 5d8e4f2271c..59d75c96372 100644 --- a/tests/e2e/mocha-happy-path.json +++ b/tests/e2e/mocha-happy-path-theia.json @@ -7,6 +7,6 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/e2e_happy_path/HappyPath.spec.js" + "dist/tests/e2e_happy_path/theia/HappyPath.spec.js" ] } diff --git a/tests/e2e/mocha-java-vertx.json b/tests/e2e/mocha-java-maven.json similarity index 91% rename from tests/e2e/mocha-java-vertx.json rename to tests/e2e/mocha-java-maven.json index 923d651d4af..46d906e100c 100644 --- a/tests/e2e/mocha-java-vertx.json +++ b/tests/e2e/mocha-java-maven.json @@ -5,5 +5,5 @@ "bail": true, "full-trace": true, "support": "source-map-support/register", - "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/JavaVertx.spec.js"] + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/JavaMaven.spec.js"] } diff --git a/tests/e2e/mocha-load.json b/tests/e2e/mocha-java-springboot-code.json similarity index 77% rename from tests/e2e/mocha-load.json rename to tests/e2e/mocha-java-springboot-code.json index 6ce2d269fa5..75e63242160 100644 --- a/tests/e2e/mocha-load.json +++ b/tests/e2e/mocha-java-springboot-code.json @@ -5,5 +5,5 @@ "bail": true, "full-trace": true, "support": "source-map-support/register", - "spec": ["dist/tests/load_test/LoadTest.spec.js"] + "spec": ["dist/tests/login/Login.spec.js"] } diff --git a/tests/e2e/mocha-java-springboot-theia.json b/tests/e2e/mocha-java-springboot-theia.json new file mode 100644 index 00000000000..b65dfb18efe --- /dev/null +++ b/tests/e2e/mocha-java-springboot-theia.json @@ -0,0 +1,9 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "support": "source-map-support/register", + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/theia/JavaSpringBoot.spec.js"] +} diff --git a/tests/e2e/mocha-wkspc-creation-and-ls.json b/tests/e2e/mocha-java-vertx-code.json similarity index 70% rename from tests/e2e/mocha-wkspc-creation-and-ls.json rename to tests/e2e/mocha-java-vertx-code.json index 2a0861f0be6..75e63242160 100644 --- a/tests/e2e/mocha-wkspc-creation-and-ls.json +++ b/tests/e2e/mocha-java-vertx-code.json @@ -5,5 +5,5 @@ "bail": true, "full-trace": true, "support": "source-map-support/register", - "spec": ["dist/tests/e2e/WorkspaceCreationAndLsInitialization.spec.js"] + "spec": ["dist/tests/login/Login.spec.js"] } diff --git a/tests/e2e/mocha-java-vertx-theia.json b/tests/e2e/mocha-java-vertx-theia.json new file mode 100644 index 00000000000..ad72d89bccc --- /dev/null +++ b/tests/e2e/mocha-java-vertx-theia.json @@ -0,0 +1,9 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "support": "source-map-support/register", + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/theia/JavaVertx.spec.js"] +} diff --git a/tests/e2e/mocha-load-theia.json b/tests/e2e/mocha-load-theia.json new file mode 100644 index 00000000000..13d4effbf30 --- /dev/null +++ b/tests/e2e/mocha-load-theia.json @@ -0,0 +1,9 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "support": "source-map-support/register", + "spec": ["dist/tests/load_test/theia/LoadTest.spec.js"] +} diff --git a/tests/e2e/mocha-scala.json b/tests/e2e/mocha-scala.json new file mode 100644 index 00000000000..f2974b5a0cf --- /dev/null +++ b/tests/e2e/mocha-scala.json @@ -0,0 +1,9 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "support": "source-map-support/register", + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/Scala.spec.js"] +} diff --git a/tests/e2e/mocha-theia.json b/tests/e2e/mocha-theia.json new file mode 100644 index 00000000000..913479aa675 --- /dev/null +++ b/tests/e2e/mocha-theia.json @@ -0,0 +1,8 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/e2e/theia/*.spec.js"] +} diff --git a/tests/e2e/mocha-ws-creation-and-ls-theia.json b/tests/e2e/mocha-ws-creation-and-ls-theia.json new file mode 100644 index 00000000000..aa6cf06fa7e --- /dev/null +++ b/tests/e2e/mocha-ws-creation-and-ls-theia.json @@ -0,0 +1,9 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "support": "source-map-support/register", + "spec": ["dist/tests/e2e/theia/WorkspaceCreationAndLsInitialization.spec.js"] +} diff --git a/tests/e2e/package-lock.json b/tests/e2e/package-lock.json index 8753018a00a..a3adc777af8 100644 --- a/tests/e2e/package-lock.json +++ b/tests/e2e/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@eclipse-che/che-e2e", - "version": "7.48.0-SNAPSHOT", + "version": "7.57.0-SNAPSHOT", "license": "ISC", "dependencies": { "@eclipse-che/api": "latest", @@ -18,17 +18,19 @@ "@types/mocha": "5.2.6", "@types/node": "11.13.4", "@types/rimraf": "2.0.2", - "@types/selenium-webdriver": "3.0.16", + "@types/selenium-webdriver": "4.1.3", "axios": "^0.25.0", "chai": "4.2.0", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "mocha": "^9.1.3", + "monaco-page-objects": "3.1.0", "rimraf": "2.6.2", - "selenium-webdriver": "3.6.0", + "selenium-webdriver": "4.4.0", "ts-node": "8.0.3", "tslint": "5.10.0", "typed-rest-client": "1.8.5", - "typescript": "3.9.9" + "typescript": "3.9.9", + "vscode-extension-tester-locators": "3.1.0" } }, "node_modules/@eclipse-che/api": { @@ -129,10 +131,22 @@ } }, "node_modules/@types/selenium-webdriver": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz", - "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==", - "dev": true + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-4.1.3.tgz", + "integrity": "sha512-wbLIzr+fG/JT2qGJUo4YU9oObkKI1TqNSxJZkQIlpK2xllJAAZA7+IcybSnC4537qGQEmhCHwWqFN1GC9r8dgw==", + "dev": true, + "dependencies": { + "@types/ws": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/yauzl": { "version": "2.9.2", @@ -218,6 +232,26 @@ "node": ">= 8" } }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/arg": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", @@ -251,6 +285,12 @@ "node": "*" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "node_modules/axios": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", @@ -498,14 +538,14 @@ } }, "node_modules/chromedriver": { - "version": "101.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-101.0.0.tgz", - "integrity": "sha512-LkkWxy6KM/0YdJS8qBeg5vfkTZTRamhBfOttb4oic4echDgWvCU1E8QcBbUBOHqZpSrYMyi7WMKmKMhXFUaZ+w==", + "version": "103.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-103.0.0.tgz", + "integrity": "sha512-7BHf6HWt0PeOHCzWO8qlnD13sARzr5AKTtG8Csn+czsuAsajwPxdLNtry5GPh8HYFyl+i0M+yg3bT43AGfgU9w==", "dev": true, "hasInstallScript": true, "dependencies": { "@testim/chrome-version": "^1.1.2", - "axios": "^0.24.0", + "axios": "^0.27.2", "del": "^6.0.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.0", @@ -520,12 +560,13 @@ } }, "node_modules/chromedriver/node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "dependencies": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, "node_modules/clean-stack": { @@ -537,6 +578,20 @@ "node": ">=6" } }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -548,6 +603,20 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -563,12 +632,30 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "2.20.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -581,6 +668,34 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -665,6 +780,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", @@ -741,6 +865,36 @@ "node": ">=0.10.0" } }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -852,6 +1006,34 @@ } } }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1134,6 +1316,21 @@ "node": ">=8" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1200,6 +1397,27 @@ "node": ">=8" } }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -1218,6 +1436,18 @@ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is2": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.7.tgz", @@ -1244,6 +1474,15 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -1263,16 +1502,37 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jszip": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", - "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", + "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", "dev": true, "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "setimmediate": "^1.0.5" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/lie": { @@ -1413,10 +1673,31 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -1426,9 +1707,9 @@ } }, "node_modules/mocha": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.1.tgz", - "integrity": "sha512-T7uscqjJVS46Pq1XDXyo9Uvey9gd3huT/DD9cYBb4K2Xc/vbKRPUWK067bxDQRK0yIz6Jxk73IrnimvASzBNAQ==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "dependencies": { "@ungap/promise-all-settled": "1.1.2", @@ -1444,9 +1725,9 @@ "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "3.0.4", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.2.0", + "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -1507,12 +1788,63 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/monaco-page-objects": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/monaco-page-objects/-/monaco-page-objects-3.1.0.tgz", + "integrity": "sha512-B0ylDy9UcCeOkYHoWziimJDcBzgWPJHBrjYzKtBMjEw++Oo3eFJ00RN1XDjgzW6o7+wlG25M/atJ9010QfLoFw==", + "dev": true, + "dependencies": { + "clipboardy": "^2.3.0", + "clone-deep": "^4.0.1", + "compare-versions": "^3.5.1", + "fs-extra": "^10.0.0", + "ts-essentials": "^8.0.0" + }, + "peerDependencies": { + "selenium-webdriver": "^4.2.0" + } + }, + "node_modules/monaco-page-objects/node_modules/ts-essentials": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-8.1.0.tgz", + "integrity": "sha512-34xALeQADWRYq9kbtprP4KdpTQ3v3BBIs/U4SpaP+C4++B8ijXY5NnILRJLchQVMzw7YBzKuGMUMrI9uT+ALVw==", + "dev": true, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, + "node_modules/monaco-page-objects/node_modules/typescript": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", + "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1520,9 +1852,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -1531,6 +1863,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1540,6 +1878,18 @@ "node": ">=0.10.0" } }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1549,13 +1899,13 @@ "wrappy": "1" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/p-limit": { @@ -1627,6 +1977,15 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -1836,25 +2195,18 @@ "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", "dev": true }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", - "dev": true - }, "node_modules/selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.4.0.tgz", + "integrity": "sha512-Du+/xfpvNi9zHAeYgXhOWN9yH0hph+cuX+hHDBr7d+SbtQVcfNJwBzLsbdHrB1Wh7MHXFuIkSG88A9TRRQUx3g==", "dev": true, "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" + "jszip": "^3.10.0", + "tmp": "^0.2.1", + "ws": ">=8.7.0" }, "engines": { - "node": ">= 6.9.0" + "node": ">= 10.15.0" } }, "node_modules/semver": { @@ -1875,10 +2227,40 @@ "randombytes": "^2.1.0" } }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1907,6 +2289,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -1976,6 +2364,15 @@ "node": ">=8" } }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -2040,15 +2437,30 @@ } }, "node_modules/tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "dependencies": { - "os-tmpdir": "~1.0.1" + "rimraf": "^3.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=8.17.0" + } + }, + "node_modules/tmp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/to-regex-range": { @@ -2181,12 +2593,31 @@ "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", "dev": true }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "node_modules/vscode-extension-tester-locators": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-extension-tester-locators/-/vscode-extension-tester-locators-3.1.0.tgz", + "integrity": "sha512-Q4gfJHnA1Kf6W0UOSE16jvPB+hk0aQ1r9b9bjM311r30hsdHkzBpAYw58YS8ZfzB7AgA4Jum/SM9q4WM2fwedg==", + "dev": true, + "peerDependencies": { + "monaco-page-objects": "^3.1.0", + "selenium-webdriver": "^4.2.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -2264,26 +2695,25 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "node_modules/xml2js": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.21.tgz", - "integrity": "sha512-gHRSAYBSA1JNVbLV2l8mTpQ/zTLcNtyG4YZmNlA3pjMWTgv9swW9muK55cr3fUmSOezLTR24iPQ+FqxilTvppw==", + "node_modules/ws": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~13.0.0" - }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", - "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==", - "dev": true, - "engines": { - "node": ">=6.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/y18n": { @@ -2459,10 +2889,22 @@ } }, "@types/selenium-webdriver": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz", - "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==", - "dev": true + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-4.1.3.tgz", + "integrity": "sha512-wbLIzr+fG/JT2qGJUo4YU9oObkKI1TqNSxJZkQIlpK2xllJAAZA7+IcybSnC4537qGQEmhCHwWqFN1GC9r8dgw==", + "dev": true, + "requires": { + "@types/ws": "*" + } + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "requires": { + "@types/node": "*" + } }, "@types/yauzl": { "version": "2.9.2", @@ -2530,6 +2972,12 @@ "picomatch": "^2.0.4" } }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, "arg": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", @@ -2557,6 +3005,12 @@ "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", "dev": true }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "axios": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", @@ -2749,13 +3203,13 @@ } }, "chromedriver": { - "version": "101.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-101.0.0.tgz", - "integrity": "sha512-LkkWxy6KM/0YdJS8qBeg5vfkTZTRamhBfOttb4oic4echDgWvCU1E8QcBbUBOHqZpSrYMyi7WMKmKMhXFUaZ+w==", + "version": "103.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-103.0.0.tgz", + "integrity": "sha512-7BHf6HWt0PeOHCzWO8qlnD13sARzr5AKTtG8Csn+czsuAsajwPxdLNtry5GPh8HYFyl+i0M+yg3bT43AGfgU9w==", "dev": true, "requires": { "@testim/chrome-version": "^1.1.2", - "axios": "^0.24.0", + "axios": "^0.27.2", "del": "^6.0.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.0", @@ -2764,12 +3218,13 @@ }, "dependencies": { "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "requires": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } } } @@ -2780,6 +3235,17 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + } + }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -2791,6 +3257,17 @@ "wrap-ansi": "^7.0.0" } }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -2806,12 +3283,27 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commander": { "version": "2.20.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2824,6 +3316,30 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -2881,6 +3397,12 @@ } } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", @@ -2935,6 +3457,32 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, "extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -3009,6 +3557,28 @@ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", "dev": true }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3217,6 +3787,12 @@ "binary-extensions": "^2.0.0" } }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3262,6 +3838,21 @@ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -3274,6 +3865,15 @@ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, "is2": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.7.tgz", @@ -3297,6 +3897,12 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -3313,18 +3919,34 @@ "esprima": "^4.0.0" } }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "jszip": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", - "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", + "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", "dev": true, "requires": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "setimmediate": "^1.0.5" } }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, "lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", @@ -3426,19 +4048,34 @@ "picomatch": "^2.2.3" } }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "mocha": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.1.tgz", - "integrity": "sha512-T7uscqjJVS46Pq1XDXyo9Uvey9gd3huT/DD9cYBb4K2Xc/vbKRPUWK067bxDQRK0yIz6Jxk73IrnimvASzBNAQ==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -3454,9 +4091,9 @@ "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "3.0.4", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.2.0", + "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -3494,6 +4131,15 @@ "argparse": "^2.0.1" } }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3502,6 +4148,35 @@ } } }, + "monaco-page-objects": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/monaco-page-objects/-/monaco-page-objects-3.1.0.tgz", + "integrity": "sha512-B0ylDy9UcCeOkYHoWziimJDcBzgWPJHBrjYzKtBMjEw++Oo3eFJ00RN1XDjgzW6o7+wlG25M/atJ9010QfLoFw==", + "dev": true, + "requires": { + "clipboardy": "^2.3.0", + "clone-deep": "^4.0.1", + "compare-versions": "^3.5.1", + "fs-extra": "^10.0.0", + "ts-essentials": "^8.0.0" + }, + "dependencies": { + "ts-essentials": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-8.1.0.tgz", + "integrity": "sha512-34xALeQADWRYq9kbtprP4KdpTQ3v3BBIs/U4SpaP+C4++B8ijXY5NnILRJLchQVMzw7YBzKuGMUMrI9uT+ALVw==", + "dev": true, + "requires": {} + }, + "typescript": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", + "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", + "dev": true, + "peer": true + } + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -3509,9 +4184,15 @@ "dev": true }, "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "normalize-path": { @@ -3520,6 +4201,15 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -3529,10 +4219,10 @@ "wrappy": "1" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true }, "p-limit": { @@ -3580,6 +4270,12 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -3730,22 +4426,15 @@ "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", "dev": true }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", - "dev": true - }, "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.4.0.tgz", + "integrity": "sha512-Du+/xfpvNi9zHAeYgXhOWN9yH0hph+cuX+hHDBr7d+SbtQVcfNJwBzLsbdHrB1Wh7MHXFuIkSG88A9TRRQUx3g==", "dev": true, "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" + "jszip": "^3.10.0", + "tmp": "^0.2.1", + "ws": ">=8.7.0" } }, "semver": { @@ -3763,10 +4452,34 @@ "randombytes": "^2.1.0" } }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true }, "side-channel": { @@ -3788,6 +4501,12 @@ } } }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -3845,6 +4564,12 @@ "ansi-regex": "^5.0.1" } }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -3890,12 +4615,23 @@ } }, "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "requires": { - "os-tmpdir": "~1.0.1" + "rimraf": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "to-regex-range": { @@ -3990,12 +4726,25 @@ "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", "dev": true }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "vscode-extension-tester-locators": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-extension-tester-locators/-/vscode-extension-tester-locators-3.1.0.tgz", + "integrity": "sha512-Q4gfJHnA1Kf6W0UOSE16jvPB+hk0aQ1r9b9bjM311r30hsdHkzBpAYw58YS8ZfzB7AgA4Jum/SM9q4WM2fwedg==", + "dev": true, + "requires": {} + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4054,21 +4803,12 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "xml2js": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.21.tgz", - "integrity": "sha512-gHRSAYBSA1JNVbLV2l8mTpQ/zTLcNtyG4YZmNlA3pjMWTgv9swW9muK55cr3fUmSOezLTR24iPQ+FqxilTvppw==", + "ws": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~13.0.0" - } - }, - "xmlbuilder": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", - "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==", - "dev": true + "requires": {} }, "y18n": { "version": "5.0.8", diff --git a/tests/e2e/package.json b/tests/e2e/package.json index 23d48562c6e..67ad378d5af 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -4,30 +4,40 @@ "description": "", "main": "dist/index.js", "scripts": { + "lint": "tslint --fix -p .", + "tsc": "tsc -p .", "cleanup-docker": "if [ $(docker ps -a | grep -c selenium-e2e) -gt 0 ]; then docker rm -f $(docker ps --filter \"name=selenium-e2e\" -aq); fi;", + "init-mocha-opts": "tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js", "test-docker": "npm run cleanup-docker && docker run -it --shm-size=2g -p 5920:5920 --name selenium-e2e -e TS_SELENIUM_BASE_URL=$TS_SELENIUM_BASE_URL eclipse/che-e2e:nightly", "test-docker-mount-e2e": "npm run cleanup-docker && docker run -it --shm-size=2g -p 5920:5920 --name selenium-e2e -e TS_SELENIUM_BASE_URL=$TS_SELENIUM_BASE_URL -v $(pwd):/tmp/e2e:Z eclipse/che-e2e:nightly", - "test": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha.json", - "load-test": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-load.json", - "test-happy-path": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-happy-path.json", - "test-devworkspace-happy-path": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-devworkspace-happy-path.json", - "test-wkspc-creation-and-ls": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-wkspc-creation-and-ls", - "test-java-vertx": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-vertx.json", - "test-git-ssh": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-ssh.json", - "test-git-self-sign-cert": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-self-sign-cert.json", - "test-git-publish-branch": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-publish-branch.json", - "test-openshift-connector": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-connector.json", - "test-all-devfiles": "./generateIndex.sh && ./initDevfileTests.sh", - "test-factory": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-factory.json", - "test-all-factories": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-all-factories.json", - "test-intelij": "tsc && mocha --config mocha.intelij.json", "test-oauth": "tsc && mocha --config mocha.ocp.link.json", - "lint": "tslint --fix -p .", - "tsc": "tsc -p .", - "init-mocha-opts": "tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js", + "test-intelij": "tsc && mocha --config mocha.intelij.json", "test-plugin": "./initPluginTest.sh", - "test-plugin-ci": "export TS_DELETE_PLUGINS_TEST_WORKSPACE=true && npm run init-mocha-opts -- --spec dist/tests/plugins/${USERSTORY}.spec.js", - "test-all-plugins": "tsc && mocha --config mocha-all-plugins.json" + "test-all-devfiles": "./generateIndex.sh && ./initDevfileTests.sh", + "test-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-theia.json", + "load-test-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-load-theia.json", + "test-happy-path-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-happy-path-theia.json", + "test-devworkspace-happy-path-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-devworkspace-happy-path-theia.json", + "test-ws-creation-and-ls-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-ws-creation-and-ls-theia.json", + "test-java-vertx-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-vertx-theia.json", + "test-java-springboot-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-springboot-theia.json", + "test-git-ssh-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-ssh-theia.json", + "test-git-self-sign-cert-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-self-sign-cert-theia.json", + "test-git-publish-branch-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-publish-branch-theia.json", + "test-openshift-connector-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-connector-theia.json", + "test-factory-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-factory-theia.json", + "test-all-factories-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-all-factories-theia.json", + "test-plugin-ci-theia": "export TS_DELETE_PLUGINS_TEST_WORKSPACE=true && npm run init-mocha-opts -- --spec dist/tests/plugins/theia/${USERSTORY}.spec.js", + "test-all-plugins-theia": "tsc && mocha --config mocha-all-plugins-theia.json", + "test-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-code.json", + "test-happy-path-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-happy-path-code.json", + "test-devworkspace-happy-path-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-devworkspace-happy-path-code.json", + "test-java-vertx-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-vertx-code.json", + "test-java-springboot-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-springboot-code.json", + "test-factory-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-factory-code.json", + "test-all-factories-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-all-factories-code.json", + "test-plugin-ci-code": "export TS_DELETE_PLUGINS_TEST_WORKSPACE=true && npm run init-mocha-opts -- --spec dist/tests/plugins/code/${USERSTORY}.spec.js", + "test-all-plugins-code": "tsc && mocha --config mocha-all-plugins-code.json" }, "author": "Ihor Okhrimenko (iokhrime@redhat.com)", "license": "ISC", @@ -36,17 +46,19 @@ "@types/mocha": "5.2.6", "@types/node": "11.13.4", "@types/rimraf": "2.0.2", - "@types/selenium-webdriver": "3.0.16", + "@types/selenium-webdriver": "4.1.3", "axios": "^0.25.0", "chai": "4.2.0", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "mocha": "^9.1.3", "rimraf": "2.6.2", - "selenium-webdriver": "3.6.0", + "selenium-webdriver": "4.4.0", "ts-node": "8.0.3", "tslint": "5.10.0", "typed-rest-client": "1.8.5", - "typescript": "3.9.9" + "typescript": "3.9.9", + "monaco-page-objects": "3.1.0", + "vscode-extension-tester-locators": "3.1.0" }, "dependencies": { "@eclipse-che/api": "latest", diff --git a/tests/e2e/pageobjects/dashboard/CreateWorkspace.ts b/tests/e2e/pageobjects/dashboard/CreateWorkspace.ts index 0ddd2a84dde..b7930dae13e 100644 --- a/tests/e2e/pageobjects/dashboard/CreateWorkspace.ts +++ b/tests/e2e/pageobjects/dashboard/CreateWorkspace.ts @@ -11,12 +11,14 @@ import { injectable, inject } from 'inversify'; import { CLASSES } from '../../inversify.types'; import { DriverHelper } from '../../utils/DriverHelper'; -import { By } from 'selenium-webdriver'; +import { By, Key } from 'selenium-webdriver'; import { Logger } from '../../utils/Logger'; import { TimeoutConstants } from '../../TimeoutConstants'; @injectable() export class CreateWorkspace { + static readonly FACTORY_URL_LOCATOR: By = By.xpath(`//input[@id="git-repo-url"]`); + constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { } async waitTitleContains(expectedText: string, timeout: number = TimeoutConstants.TS_COMMON_DASHBOARD_WAIT_TIMEOUT) { @@ -49,6 +51,12 @@ export class CreateWorkspace { await this.driverHelper.waitAndClick(sampleLocator, timeout); } + async startWorkspaceUsingFactory(factoryUrl: string, timeout: number = TimeoutConstants.TS_CLICK_DASHBOARD_ITEM_TIMEOUT) { + Logger.debug(`CreateWorkspace.startWorkspaceUsingFactory factoryUrl: "${factoryUrl}"`); + await this.driverHelper.waitVisibility(CreateWorkspace.FACTORY_URL_LOCATOR, timeout); + await this.driverHelper.type(CreateWorkspace.FACTORY_URL_LOCATOR, Key.chord(factoryUrl, Key.ENTER), timeout); + } + private getSampleLocator(sampleName: string): By { Logger.trace(`CreateWorkspace.getSampleLocator sampleName: ${sampleName}`); diff --git a/tests/e2e/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts b/tests/e2e/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts index 525a02aa821..340bf8831c8 100644 --- a/tests/e2e/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +++ b/tests/e2e/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts @@ -13,7 +13,7 @@ import { CLASSES, TYPES } from '../../../inversify.types'; import 'reflect-metadata'; import { TestConstants } from '../../../TestConstants'; import { By } from 'selenium-webdriver'; -import { Ide } from '../../ide/Ide'; +import { Ide } from '../../ide/theia/Ide'; import { WorkspaceStatus } from '../../../utils/workspace/WorkspaceStatus'; import { Logger } from '../../../utils/Logger'; import { TimeoutConstants } from '../../../TimeoutConstants'; diff --git a/tests/e2e/pageobjects/ide/ContextMenu.ts b/tests/e2e/pageobjects/ide/theia/ContextMenu.ts similarity index 84% rename from tests/e2e/pageobjects/ide/ContextMenu.ts rename to tests/e2e/pageobjects/ide/theia/ContextMenu.ts index b5c2a9b22ef..572589056d3 100644 --- a/tests/e2e/pageobjects/ide/ContextMenu.ts +++ b/tests/e2e/pageobjects/ide/theia/ContextMenu.ts @@ -10,11 +10,11 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { CLASSES } from '../../inversify.types'; -import { WebElement, Button, By, Key } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { By, Key, WebElement } from 'selenium-webdriver'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class ContextMenu { @@ -27,7 +27,7 @@ export class ContextMenu { Logger.debug(`ContextMenu.invokeContextMenuOnTheElementWithMouse ${elementLocator}`); const webElement: WebElement = await this.driverHelper.waitVisibility(elementLocator, TimeoutConstants.TS_CONTEXT_MENU_TIMEOUT); - await this.driverHelper.getAction().click(webElement, Button.RIGHT).perform(); + await this.driverHelper.getAction().contextClick(webElement).perform(); this.waitContextMenu(); } diff --git a/tests/e2e/pageobjects/ide/DebugView.ts b/tests/e2e/pageobjects/ide/theia/DebugView.ts similarity index 90% rename from tests/e2e/pageobjects/ide/DebugView.ts rename to tests/e2e/pageobjects/ide/theia/DebugView.ts index 45805864ad5..7121139cd92 100644 --- a/tests/e2e/pageobjects/ide/DebugView.ts +++ b/tests/e2e/pageobjects/ide/theia/DebugView.ts @@ -9,14 +9,14 @@ **********************************************************************/ import { inject, injectable } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { TestConstants } from '../../TestConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { TestConstants } from '../../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By, Key, WebElement, error } from 'selenium-webdriver'; import { Ide } from './Ide'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { AnimationChecker } from '../../utils/AnimationChecker'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { AnimationChecker } from '../../../utils/AnimationChecker'; @injectable() export class DebugView { diff --git a/tests/e2e/pageobjects/ide/DialogWindow.ts b/tests/e2e/pageobjects/ide/theia/DialogWindow.ts similarity index 94% rename from tests/e2e/pageobjects/ide/DialogWindow.ts rename to tests/e2e/pageobjects/ide/theia/DialogWindow.ts index 6a0b4f0f242..2f25b215ca5 100644 --- a/tests/e2e/pageobjects/ide/DialogWindow.ts +++ b/tests/e2e/pageobjects/ide/theia/DialogWindow.ts @@ -9,12 +9,12 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; +import { Logger } from '../../../utils/Logger'; import { Ide } from './Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class DialogWindow { diff --git a/tests/e2e/pageobjects/ide/Editor.ts b/tests/e2e/pageobjects/ide/theia/Editor.ts similarity index 96% rename from tests/e2e/pageobjects/ide/Editor.ts rename to tests/e2e/pageobjects/ide/theia/Editor.ts index cb543baec76..fd366a46c89 100644 --- a/tests/e2e/pageobjects/ide/Editor.ts +++ b/tests/e2e/pageobjects/ide/theia/Editor.ts @@ -10,12 +10,12 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { CLASSES } from '../../inversify.types'; -import { TestConstants } from '../../TestConstants'; -import { By, Key, error, ActionSequence, Button } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { TestConstants } from '../../../TestConstants'; +import { By, Key, error } from 'selenium-webdriver'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class Editor { @@ -429,34 +429,33 @@ export class Editor { const yPosition: number = await this.getLineYCoordinates(line, fileName) + Editor.ADDITIONAL_SHIFTING_TO_Y; const xPosition: number = char + Editor.ADDITIONAL_SHIFTING_TO_X; - new ActionSequence(this.driverHelper.getDriver()). - mouseMove({ x: xPosition, y: yPosition }). - click(). - perform(); + this.driverHelper.getAction().move({ x: xPosition, y: yPosition }).click().perform(); } async goToDefinitionWithMouseClicking(line: number, char: number, fileName: string) { Logger.debug(`Editor.goToDefinitionWithMouseClicking line: "${line}" char: "${char}"`); const yPosition: number = await this.getLineYCoordinates(line, fileName) + Editor.ADDITIONAL_SHIFTING_TO_Y; + const xPosition: number = char + Editor.ADDITIONAL_SHIFTING_TO_X; - new ActionSequence(this.driverHelper.getDriver()). - keyDown(Key.CONTROL). - mouseMove({ x: char + Editor.ADDITIONAL_SHIFTING_TO_X, y: yPosition }). - click(). - keyDown(Key.CONTROL). - perform(); + this.driverHelper.getAction() + .keyDown(Key.CONTROL) + .move({ x: xPosition, y: yPosition}) + .click() + .keyDown(Key.CONTROL) + .perform(); } async mouseRightButtonClick(line: number, char: number, fileName: string) { Logger.debug(`Editor.mouseRightButtonClick line: "${line}" char: "${char}"`); const yPosition: number = await this.getLineYCoordinates(line, fileName) + Editor.ADDITIONAL_SHIFTING_TO_Y; + const xPosition: number = char + Editor.ADDITIONAL_SHIFTING_TO_X; - new ActionSequence(this.driverHelper.getDriver()). - mouseMove({ x: char + Editor.ADDITIONAL_SHIFTING_TO_X, y: yPosition }). - click(Button.RIGHT). - perform(); + this.driverHelper.getAction() + .move({ x: xPosition, y: yPosition}) + .contextClick() + .perform(); } private async scrollAndSearchSuggestion(editorTabTitle: string, suggestionLocator: By, timeout: number = 10000) { diff --git a/tests/e2e/pageobjects/ide/Ide.ts b/tests/e2e/pageobjects/ide/theia/Ide.ts similarity index 98% rename from tests/e2e/pageobjects/ide/Ide.ts rename to tests/e2e/pageobjects/ide/theia/Ide.ts index 8c906d2ea96..503e1ae1587 100644 --- a/tests/e2e/pageobjects/ide/Ide.ts +++ b/tests/e2e/pageobjects/ide/theia/Ide.ts @@ -9,14 +9,14 @@ **********************************************************************/ import axios from 'axios'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { TestConstants } from '../../TestConstants'; +import { CLASSES } from '../../../inversify.types'; +import { TestConstants } from '../../../TestConstants'; import { By, error } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; +import { Logger } from '../../../utils/Logger'; import { NotificationCenter } from './NotificationCenter'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; export enum LeftToolbarButton { Explorer = 'Explorer', diff --git a/tests/e2e/pageobjects/ide/LeftToolBar.ts b/tests/e2e/pageobjects/ide/theia/LeftToolBar.ts similarity index 93% rename from tests/e2e/pageobjects/ide/LeftToolBar.ts rename to tests/e2e/pageobjects/ide/theia/LeftToolBar.ts index 791b5647fae..f14b3765970 100644 --- a/tests/e2e/pageobjects/ide/LeftToolBar.ts +++ b/tests/e2e/pageobjects/ide/theia/LeftToolBar.ts @@ -9,11 +9,11 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class LeftToolBar { diff --git a/tests/e2e/pageobjects/ide/NavigationBar.ts b/tests/e2e/pageobjects/ide/theia/NavigationBar.ts similarity index 81% rename from tests/e2e/pageobjects/ide/NavigationBar.ts rename to tests/e2e/pageobjects/ide/theia/NavigationBar.ts index 7df70601c14..5b94bec6d49 100644 --- a/tests/e2e/pageobjects/ide/NavigationBar.ts +++ b/tests/e2e/pageobjects/ide/theia/NavigationBar.ts @@ -7,14 +7,14 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ - import { injectable, inject } from 'inversify'; - import { DriverHelper } from '../../utils/DriverHelper'; - import { CLASSES } from '../../inversify.types'; - import { Logger } from '../../utils/Logger'; - import { By } from 'selenium-webdriver'; +import { injectable, inject } from 'inversify'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { Logger } from '../../../utils/Logger'; +import { By } from 'selenium-webdriver'; - @injectable() - export class NavigationBar { +@injectable() +export class NavigationBar { constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { } async clickOnShowNavigationBar() { diff --git a/tests/e2e/pageobjects/ide/NotificationCenter.ts b/tests/e2e/pageobjects/ide/theia/NotificationCenter.ts similarity index 93% rename from tests/e2e/pageobjects/ide/NotificationCenter.ts rename to tests/e2e/pageobjects/ide/theia/NotificationCenter.ts index 460f1d3b5b0..298f78c6351 100644 --- a/tests/e2e/pageobjects/ide/NotificationCenter.ts +++ b/tests/e2e/pageobjects/ide/theia/NotificationCenter.ts @@ -9,11 +9,11 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { Logger } from '../../utils/Logger'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { Logger } from '../../../utils/Logger'; import { By } from 'selenium-webdriver'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class NotificationCenter { diff --git a/tests/e2e/pageobjects/ide/OpenDialogWidget.ts b/tests/e2e/pageobjects/ide/theia/OpenDialogWidget.ts similarity index 90% rename from tests/e2e/pageobjects/ide/OpenDialogWidget.ts rename to tests/e2e/pageobjects/ide/theia/OpenDialogWidget.ts index 4ccdc0b2e8a..59a8a92640a 100644 --- a/tests/e2e/pageobjects/ide/OpenDialogWidget.ts +++ b/tests/e2e/pageobjects/ide/theia/OpenDialogWidget.ts @@ -9,13 +9,13 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { Logger } from '../../utils/Logger'; -import { DialogWindow } from '../ide/DialogWindow'; -import { OpenWorkspaceWidget } from '../ide/OpenWorkspaceWidget'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { Logger } from '../../../utils/Logger'; +import { DialogWindow } from '../../ide/theia/DialogWindow'; +import { OpenWorkspaceWidget } from '../../ide/theia/OpenWorkspaceWidget'; import { By } from 'selenium-webdriver'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; export enum Locations { Theia = 'theia', diff --git a/tests/e2e/pageobjects/ide/OpenEditors.ts b/tests/e2e/pageobjects/ide/theia/OpenEditors.ts similarity index 93% rename from tests/e2e/pageobjects/ide/OpenEditors.ts rename to tests/e2e/pageobjects/ide/theia/OpenEditors.ts index 6fefcdb442a..5d72d398c50 100644 --- a/tests/e2e/pageobjects/ide/OpenEditors.ts +++ b/tests/e2e/pageobjects/ide/theia/OpenEditors.ts @@ -10,11 +10,11 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { CLASSES } from '../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class OpenEditors { diff --git a/tests/e2e/pageobjects/ide/OpenWorkspaceWidget.ts b/tests/e2e/pageobjects/ide/theia/OpenWorkspaceWidget.ts similarity index 89% rename from tests/e2e/pageobjects/ide/OpenWorkspaceWidget.ts rename to tests/e2e/pageobjects/ide/theia/OpenWorkspaceWidget.ts index 77864c06de5..4129f6a045f 100644 --- a/tests/e2e/pageobjects/ide/OpenWorkspaceWidget.ts +++ b/tests/e2e/pageobjects/ide/theia/OpenWorkspaceWidget.ts @@ -9,11 +9,11 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class OpenWorkspaceWidget { diff --git a/tests/e2e/pageobjects/ide/PreviewWidget.ts b/tests/e2e/pageobjects/ide/theia/PreviewWidget.ts similarity index 94% rename from tests/e2e/pageobjects/ide/PreviewWidget.ts rename to tests/e2e/pageobjects/ide/theia/PreviewWidget.ts index 08a3aecdb3c..1c144af4f85 100644 --- a/tests/e2e/pageobjects/ide/PreviewWidget.ts +++ b/tests/e2e/pageobjects/ide/theia/PreviewWidget.ts @@ -9,13 +9,13 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By, error, Key } from 'selenium-webdriver'; -import { TestConstants } from '../../TestConstants'; +import { TestConstants } from '../../../TestConstants'; import { Ide } from './Ide'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; /** * @deprecated Preview widget is no longer a valid page fragment. diff --git a/tests/e2e/pageobjects/ide/ProjectTree.ts b/tests/e2e/pageobjects/ide/theia/ProjectTree.ts similarity index 97% rename from tests/e2e/pageobjects/ide/ProjectTree.ts rename to tests/e2e/pageobjects/ide/theia/ProjectTree.ts index a7bd04f940d..43b5600cf00 100644 --- a/tests/e2e/pageobjects/ide/ProjectTree.ts +++ b/tests/e2e/pageobjects/ide/theia/ProjectTree.ts @@ -10,15 +10,15 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { CLASSES } from '../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; import { Ide, LeftToolbarButton } from './Ide'; -import { TestConstants } from '../../TestConstants'; +import { TestConstants } from '../../../TestConstants'; import { By, error } from 'selenium-webdriver'; import { Editor } from './Editor'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; @injectable() export class ProjectTree { diff --git a/tests/e2e/pageobjects/ide/QuickOpenContainer.ts b/tests/e2e/pageobjects/ide/theia/QuickOpenContainer.ts similarity index 91% rename from tests/e2e/pageobjects/ide/QuickOpenContainer.ts rename to tests/e2e/pageobjects/ide/theia/QuickOpenContainer.ts index 34d9d92da9b..956d3e53d99 100644 --- a/tests/e2e/pageobjects/ide/QuickOpenContainer.ts +++ b/tests/e2e/pageobjects/ide/theia/QuickOpenContainer.ts @@ -9,11 +9,11 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class QuickOpenContainer { diff --git a/tests/e2e/pageobjects/ide/RightToolBar.ts b/tests/e2e/pageobjects/ide/theia/RightToolBar.ts similarity index 84% rename from tests/e2e/pageobjects/ide/RightToolBar.ts rename to tests/e2e/pageobjects/ide/theia/RightToolBar.ts index ae1f0e835c6..e54c2c5060a 100644 --- a/tests/e2e/pageobjects/ide/RightToolBar.ts +++ b/tests/e2e/pageobjects/ide/theia/RightToolBar.ts @@ -8,11 +8,11 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class RightToolBar { diff --git a/tests/e2e/pageobjects/ide/Terminal.ts b/tests/e2e/pageobjects/ide/theia/Terminal.ts similarity index 97% rename from tests/e2e/pageobjects/ide/Terminal.ts rename to tests/e2e/pageobjects/ide/theia/Terminal.ts index aa5414fb38a..34f99b27575 100644 --- a/tests/e2e/pageobjects/ide/Terminal.ts +++ b/tests/e2e/pageobjects/ide/theia/Terminal.ts @@ -9,12 +9,12 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By, Key, WebElement, error } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; @injectable() export class Terminal { diff --git a/tests/e2e/pageobjects/ide/TopMenu.ts b/tests/e2e/pageobjects/ide/theia/TopMenu.ts similarity index 93% rename from tests/e2e/pageobjects/ide/TopMenu.ts rename to tests/e2e/pageobjects/ide/theia/TopMenu.ts index 561416cd4fa..541d6baf4fa 100644 --- a/tests/e2e/pageobjects/ide/TopMenu.ts +++ b/tests/e2e/pageobjects/ide/theia/TopMenu.ts @@ -1,11 +1,11 @@ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By, error } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; +import { Logger } from '../../../utils/Logger'; import { QuickOpenContainer } from './QuickOpenContainer'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { AnimationChecker } from '../../utils/AnimationChecker'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { AnimationChecker } from '../../../utils/AnimationChecker'; /********************************************************************* * Copyright (c) 2019 Red Hat, Inc. diff --git a/tests/e2e/pageobjects/ide/plugins/GitHubPullRequestPlugin.ts b/tests/e2e/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.ts similarity index 94% rename from tests/e2e/pageobjects/ide/plugins/GitHubPullRequestPlugin.ts rename to tests/e2e/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.ts index a29133fc082..5a8e9f5e774 100644 --- a/tests/e2e/pageobjects/ide/plugins/GitHubPullRequestPlugin.ts +++ b/tests/e2e/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.ts @@ -10,13 +10,13 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../../inversify.types'; -import { DriverHelper } from '../../../utils/DriverHelper'; -import { Logger } from '../../../utils/Logger'; +import { CLASSES } from '../../../../inversify.types'; +import { DriverHelper } from '../../../../utils/DriverHelper'; +import { Logger } from '../../../../utils/Logger'; import { By, error } from 'selenium-webdriver'; -import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TimeoutConstants } from '../../../../TimeoutConstants'; import { LeftToolBar } from '../LeftToolBar'; -import { TestConstants } from '../../../TestConstants'; +import { TestConstants } from '../../../../TestConstants'; import { TopMenu } from '../TopMenu'; import { QuickOpenContainer } from '../QuickOpenContainer'; diff --git a/tests/e2e/pageobjects/ide/plugins/GitPlugin.ts b/tests/e2e/pageobjects/ide/theia/plugins/GitPlugin.ts similarity index 96% rename from tests/e2e/pageobjects/ide/plugins/GitPlugin.ts rename to tests/e2e/pageobjects/ide/theia/plugins/GitPlugin.ts index 2da32c60fcf..0a14c41471a 100644 --- a/tests/e2e/pageobjects/ide/plugins/GitPlugin.ts +++ b/tests/e2e/pageobjects/ide/theia/plugins/GitPlugin.ts @@ -9,11 +9,11 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../../inversify.types'; -import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../../inversify.types'; +import { DriverHelper } from '../../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../../utils/Logger'; -import { TimeoutConstants } from '../../../TimeoutConstants'; +import { Logger } from '../../../../utils/Logger'; +import { TimeoutConstants } from '../../../../TimeoutConstants'; import { DialogWindow } from '../DialogWindow'; import { TopMenu } from '../TopMenu'; import { QuickOpenContainer } from '../QuickOpenContainer'; diff --git a/tests/e2e/pageobjects/ide/plugins/KubernetesPlugin.ts b/tests/e2e/pageobjects/ide/theia/plugins/KubernetesPlugin.ts similarity index 95% rename from tests/e2e/pageobjects/ide/plugins/KubernetesPlugin.ts rename to tests/e2e/pageobjects/ide/theia/plugins/KubernetesPlugin.ts index 3effb57f231..13df035122f 100644 --- a/tests/e2e/pageobjects/ide/plugins/KubernetesPlugin.ts +++ b/tests/e2e/pageobjects/ide/theia/plugins/KubernetesPlugin.ts @@ -10,11 +10,11 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../../inversify.types'; -import { DriverHelper } from '../../../utils/DriverHelper'; -import { Logger } from '../../../utils/Logger'; +import { CLASSES } from '../../../../inversify.types'; +import { DriverHelper } from '../../../../utils/DriverHelper'; +import { Logger } from '../../../../utils/Logger'; import { By } from 'selenium-webdriver'; -import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TimeoutConstants } from '../../../../TimeoutConstants'; import { LeftToolBar } from '../LeftToolBar'; @injectable() diff --git a/tests/e2e/pageobjects/ide/plugins/OpenshiftPlugin.ts b/tests/e2e/pageobjects/ide/theia/plugins/OpenshiftPlugin.ts similarity index 94% rename from tests/e2e/pageobjects/ide/plugins/OpenshiftPlugin.ts rename to tests/e2e/pageobjects/ide/theia/plugins/OpenshiftPlugin.ts index a76edd35099..161aeb039e7 100644 --- a/tests/e2e/pageobjects/ide/plugins/OpenshiftPlugin.ts +++ b/tests/e2e/pageobjects/ide/theia/plugins/OpenshiftPlugin.ts @@ -9,13 +9,13 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../../inversify.types'; -import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../../inversify.types'; +import { DriverHelper } from '../../../../utils/DriverHelper'; import { Ide, LeftToolbarButton } from '../Ide'; -import { Logger } from '../../../utils/Logger'; +import { Logger } from '../../../../utils/Logger'; import { By } from 'selenium-webdriver'; import { ContextMenu } from '../ContextMenu'; -import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TimeoutConstants } from '../../../../TimeoutConstants'; export enum OpenshiftAppExplorerToolbar { ReportExtensionIssueOnGitHub = 'Report Extension Issue on GitHub', diff --git a/tests/e2e/pageobjects/ide/plugins/PluginsView.ts b/tests/e2e/pageobjects/ide/theia/plugins/PluginsView.ts similarity index 97% rename from tests/e2e/pageobjects/ide/plugins/PluginsView.ts rename to tests/e2e/pageobjects/ide/theia/plugins/PluginsView.ts index 87d0fb60544..40608ec996c 100644 --- a/tests/e2e/pageobjects/ide/plugins/PluginsView.ts +++ b/tests/e2e/pageobjects/ide/theia/plugins/PluginsView.ts @@ -10,11 +10,11 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../../inversify.types'; -import { DriverHelper } from '../../../utils/DriverHelper'; -import { Logger } from '../../../utils/Logger'; +import { CLASSES } from '../../../../inversify.types'; +import { DriverHelper } from '../../../../utils/DriverHelper'; +import { Logger } from '../../../../utils/Logger'; import { By, error } from 'selenium-webdriver'; -import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TimeoutConstants } from '../../../../TimeoutConstants'; import { LeftToolBar } from '../LeftToolBar'; import { TopMenu } from '../TopMenu'; diff --git a/tests/e2e/tests/devfiles/che-code/EmptyWorkspace.spec.ts b/tests/e2e/tests/devfiles/che-code/EmptyWorkspace.spec.ts new file mode 100644 index 00000000000..45dc2d756ed --- /dev/null +++ b/tests/e2e/tests/devfiles/che-code/EmptyWorkspace.spec.ts @@ -0,0 +1,58 @@ +/********************************************************************* + * Copyright (c) 2020 Red Hat, Inc. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + **********************************************************************/ +import 'reflect-metadata'; +import { CLASSES } from '../../../inversify.types'; +import { e2eContainer } from '../../../inversify.config'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; +import { Logger } from '../../../utils/Logger'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { By, until } from 'selenium-webdriver'; +import { Workbench } from 'monaco-page-objects'; + +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); + +const stackName: string = 'Empty Workspace'; + +suite(`${stackName} test`, async () => { + suite(`Create ${stackName} workspace`, async () => { + workspaceHandlingTests.createAndOpenWorkspace(stackName); + workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); + test('Register running workspace', async () => { + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + }); + test('Wait workspace readiness', async() => { + try { + await driverHelper.getDriver().wait(until.elementLocated(By.className('monaco-workbench'))); + } catch (err) { + if ((err as Error).name === 'WebDriverError') { + await new Promise(res => setTimeout(res, 3000)); + } else { + throw err; + } + } + let workbench = new Workbench(); + let activityBar = workbench.getActivityBar(); + let activityBarControls = await activityBar.getViewControls(); + Logger.debug(`Editor sections:`); + activityBarControls.forEach(async control => { + Logger.debug(`${await control.getTitle()}`); + }); + }); + // projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); + }); + + suite('Stopping and deleting the workspace', async () => { + test(`Stop and remowe workspace`, async () => { + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + }); + }); +}); diff --git a/tests/e2e/tests/devfiles/CSlashCPlusPlus.spec.ts b/tests/e2e/tests/devfiles/theia/CSlashCPlusPlus.spec.ts similarity index 76% rename from tests/e2e/tests/devfiles/CSlashCPlusPlus.spec.ts rename to tests/e2e/tests/devfiles/theia/CSlashCPlusPlus.spec.ts index abacb6c646a..89aae78fe4a 100644 --- a/tests/e2e/tests/devfiles/CSlashCPlusPlus.spec.ts +++ b/tests/e2e/tests/devfiles/theia/CSlashCPlusPlus.spec.ts @@ -8,19 +8,19 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const editor: Editor = e2eContainer.get(CLASSES.Editor); const workspaceSampleName: string = 'cpp-hello-world'; diff --git a/tests/e2e/tests/devfiles/DevfileSmoke.spec.ts b/tests/e2e/tests/devfiles/theia/DevfileSmoke.spec.ts similarity index 69% rename from tests/e2e/tests/devfiles/DevfileSmoke.spec.ts rename to tests/e2e/tests/devfiles/theia/DevfileSmoke.spec.ts index e9d83b213b6..a28ffda34f3 100644 --- a/tests/e2e/tests/devfiles/DevfileSmoke.spec.ts +++ b/tests/e2e/tests/devfiles/theia/DevfileSmoke.spec.ts @@ -8,18 +8,18 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { e2eContainer } from '../../inversify.config'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { NavigationBar } from '../../pageobjects/ide/NavigationBar'; -import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { e2eContainer } from '../../../inversify.config'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { NavigationBar } from '../../../pageobjects/ide/theia/NavigationBar'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const navigationBar: NavigationBar = e2eContainer.get(CLASSES.NavigationBar); const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard); diff --git a/tests/e2e/tests/devfiles/DotNetCore.spec.ts b/tests/e2e/tests/devfiles/theia/DotNetCore.spec.ts similarity index 79% rename from tests/e2e/tests/devfiles/DotNetCore.spec.ts rename to tests/e2e/tests/devfiles/theia/DotNetCore.spec.ts index 3518e46cdfd..5e7373fc5e7 100644 --- a/tests/e2e/tests/devfiles/DotNetCore.spec.ts +++ b/tests/e2e/tests/devfiles/theia/DotNetCore.spec.ts @@ -8,19 +8,19 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { e2eContainer } from '../../inversify.config'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { e2eContainer } from '../../../inversify.config'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const editor: Editor = e2eContainer.get(CLASSES.Editor); const workspaceSampleName: string = 'dotnet-web-simple'; diff --git a/tests/e2e/tests/devfiles/Go.spec.ts b/tests/e2e/tests/devfiles/theia/Go.spec.ts similarity index 74% rename from tests/e2e/tests/devfiles/Go.spec.ts rename to tests/e2e/tests/devfiles/theia/Go.spec.ts index 232c7a2e54c..42b2b8b526e 100644 --- a/tests/e2e/tests/devfiles/Go.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Go.spec.ts @@ -7,22 +7,22 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { CLASSES } from '../../inversify.types'; -import { e2eContainer } from '../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { e2eContainer } from '../../../inversify.config'; import 'reflect-metadata'; -import { Logger } from '../../utils/Logger'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { Logger } from '../../../utils/Logger'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const workspaceStack: string = 'Go'; const workspaceSampleName: string = 'golang-example'; diff --git a/tests/e2e/tests/devfiles/JavaMaven.spec.ts b/tests/e2e/tests/devfiles/theia/JavaMaven.spec.ts similarity index 74% rename from tests/e2e/tests/devfiles/JavaMaven.spec.ts rename to tests/e2e/tests/devfiles/theia/JavaMaven.spec.ts index e15f0234294..564b4174f22 100644 --- a/tests/e2e/tests/devfiles/JavaMaven.spec.ts +++ b/tests/e2e/tests/devfiles/theia/JavaMaven.spec.ts @@ -8,18 +8,18 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceSampleName: string = 'console-java-simple'; const workspaceRootFolderName: string = 'src'; diff --git a/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts b/tests/e2e/tests/devfiles/theia/JavaSpringBoot.spec.ts similarity index 77% rename from tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts rename to tests/e2e/tests/devfiles/theia/JavaSpringBoot.spec.ts index af2b3fb7823..91c3c9b2a5f 100644 --- a/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts +++ b/tests/e2e/tests/devfiles/theia/JavaSpringBoot.spec.ts @@ -8,18 +8,18 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const stack: string = 'Java Spring Boot'; const workspaceSampleName: string = 'java-web-spring'; diff --git a/tests/e2e/tests/devfiles/JavaVertx.spec.ts b/tests/e2e/tests/devfiles/theia/JavaVertx.spec.ts similarity index 74% rename from tests/e2e/tests/devfiles/JavaVertx.spec.ts rename to tests/e2e/tests/devfiles/theia/JavaVertx.spec.ts index 886cb9a0ec2..6498f0524ea 100644 --- a/tests/e2e/tests/devfiles/JavaVertx.spec.ts +++ b/tests/e2e/tests/devfiles/theia/JavaVertx.spec.ts @@ -8,18 +8,18 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceSampleName: string = 'vertx-http-example'; const workspaceRootFolderName: string = 'src'; diff --git a/tests/e2e/tests/devfiles/NodeJS.spec.ts b/tests/e2e/tests/devfiles/theia/NodeJS.spec.ts similarity index 76% rename from tests/e2e/tests/devfiles/NodeJS.spec.ts rename to tests/e2e/tests/devfiles/theia/NodeJS.spec.ts index 5841b59415e..a3cd62d6248 100644 --- a/tests/e2e/tests/devfiles/NodeJS.spec.ts +++ b/tests/e2e/tests/devfiles/theia/NodeJS.spec.ts @@ -7,19 +7,19 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { CLASSES } from '../../inversify.types'; +import { CLASSES } from '../../../inversify.types'; import 'reflect-metadata'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceStack: string = 'NodeJS Express Web Application'; const workspaceSampleName: string = 'nodejs-web-app'; diff --git a/tests/e2e/tests/devfiles/PHPSimple.spec.ts b/tests/e2e/tests/devfiles/theia/PHPSimple.spec.ts similarity index 76% rename from tests/e2e/tests/devfiles/PHPSimple.spec.ts rename to tests/e2e/tests/devfiles/theia/PHPSimple.spec.ts index cf59ddd7041..d61ce623ad9 100644 --- a/tests/e2e/tests/devfiles/PHPSimple.spec.ts +++ b/tests/e2e/tests/devfiles/theia/PHPSimple.spec.ts @@ -8,19 +8,19 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const editor: Editor = e2eContainer.get(CLASSES.Editor); const workspaceSampleName: string = 'php-web-simple'; diff --git a/tests/e2e/tests/devfiles/Python.spec.ts b/tests/e2e/tests/devfiles/theia/Python.spec.ts similarity index 73% rename from tests/e2e/tests/devfiles/Python.spec.ts rename to tests/e2e/tests/devfiles/theia/Python.spec.ts index 1ea257ff7bf..5f4ad67072b 100644 --- a/tests/e2e/tests/devfiles/Python.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Python.spec.ts @@ -7,19 +7,19 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { CLASSES } from '../../inversify.types'; +import { CLASSES } from '../../../inversify.types'; import 'reflect-metadata'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceStack: string = 'Python'; const workspaceSampleName: string = 'python-hello-world'; diff --git a/tests/e2e/tests/devfiles/PythonDjango.spec.ts b/tests/e2e/tests/devfiles/theia/PythonDjango.spec.ts similarity index 80% rename from tests/e2e/tests/devfiles/PythonDjango.spec.ts rename to tests/e2e/tests/devfiles/theia/PythonDjango.spec.ts index 70b29bc8766..c341473c110 100644 --- a/tests/e2e/tests/devfiles/PythonDjango.spec.ts +++ b/tests/e2e/tests/devfiles/theia/PythonDjango.spec.ts @@ -7,17 +7,17 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { CLASSES } from '../../inversify.types'; +import { CLASSES } from '../../../inversify.types'; import 'reflect-metadata'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { e2eContainer } from '../../inversify.config'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceStack: string = 'Python Django'; const workspaceSampleName: string = 'django-realworld-example-app'; diff --git a/tests/e2e/tests/devfiles/Quarkus.spec.ts b/tests/e2e/tests/devfiles/theia/Quarkus.spec.ts similarity index 78% rename from tests/e2e/tests/devfiles/Quarkus.spec.ts rename to tests/e2e/tests/devfiles/theia/Quarkus.spec.ts index 7a963ff6cf0..6f86c116253 100644 --- a/tests/e2e/tests/devfiles/Quarkus.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Quarkus.spec.ts @@ -7,19 +7,19 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { CLASSES } from '../../inversify.types'; +import { CLASSES } from '../../../inversify.types'; import 'reflect-metadata'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceStack: string = 'Quarkus CLI'; const workspaceSampleName: string = 'quarkus-quickstarts'; diff --git a/tests/e2e/tests/devfiles/Scala.spec.ts b/tests/e2e/tests/devfiles/theia/Scala.spec.ts similarity index 77% rename from tests/e2e/tests/devfiles/Scala.spec.ts rename to tests/e2e/tests/devfiles/theia/Scala.spec.ts index 95460b340f4..eddc64bd058 100644 --- a/tests/e2e/tests/devfiles/Scala.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Scala.spec.ts @@ -8,18 +8,18 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceSampleName: string = 'console-scala-simple'; const workspaceRootFolderName: string = 'example'; diff --git a/tests/e2e/tests/e2e/FactoryUrl.spec.ts b/tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts similarity index 72% rename from tests/e2e/tests/e2e/FactoryUrl.spec.ts rename to tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts index fa90f5827d2..63ff583d2d2 100644 --- a/tests/e2e/tests/e2e/FactoryUrl.spec.ts +++ b/tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts @@ -8,18 +8,18 @@ // * SPDX-License-Identifier: EPL-2.0 // **********************************************************************/ -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { TestConstants } from '../../TestConstants'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const testWorkspaceUtils: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://raw.githubusercontent.com/eclipse/che-devfile-registry/master/devfiles/java-maven/devfile.yaml`; const workspaceSampleName: string = 'console-java-simple'; diff --git a/tests/e2e/tests/e2e/GitPublishBranch.spec.ts b/tests/e2e/tests/e2e/theia/GitPublishBranch.spec.ts similarity index 81% rename from tests/e2e/tests/e2e/GitPublishBranch.spec.ts rename to tests/e2e/tests/e2e/theia/GitPublishBranch.spec.ts index 15000d63679..689c628263c 100644 --- a/tests/e2e/tests/e2e/GitPublishBranch.spec.ts +++ b/tests/e2e/tests/e2e/theia/GitPublishBranch.spec.ts @@ -8,23 +8,23 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { GitPlugin } from '../../pageobjects/ide/plugins/GitPlugin'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; -import { TestConstants } from '../../TestConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { WorkspaceNameHandler } from '../../utils/WorkspaceNameHandler'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { GitPlugin } from '../../../pageobjects/ide/theia/plugins/GitPlugin'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { ICheLoginPage } from '../../../pageobjects/login/ICheLoginPage'; +import { TestConstants } from '../../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler'; import { By } from 'selenium-webdriver'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); diff --git a/tests/e2e/tests/e2e/GitSelfSignCert.spec.ts b/tests/e2e/tests/e2e/theia/GitSelfSignCert.spec.ts similarity index 80% rename from tests/e2e/tests/e2e/GitSelfSignCert.spec.ts rename to tests/e2e/tests/e2e/theia/GitSelfSignCert.spec.ts index 717365d20fb..cdd5531e856 100644 --- a/tests/e2e/tests/e2e/GitSelfSignCert.spec.ts +++ b/tests/e2e/tests/e2e/theia/GitSelfSignCert.spec.ts @@ -8,23 +8,23 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { GitPlugin } from '../../pageobjects/ide/plugins/GitPlugin'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; -import { TestConstants } from '../../TestConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import CheReporter from '../../driver/CheReporter'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { GitPlugin } from '../../../pageobjects/ide/theia/plugins/GitPlugin'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { ICheLoginPage } from '../../../pageobjects/login/ICheLoginPage'; +import { TestConstants } from '../../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import CheReporter from '../../../driver/CheReporter'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const ide: Ide = e2eContainer.get(CLASSES.Ide); diff --git a/tests/e2e/tests/e2e/GitSsh.spec.ts b/tests/e2e/tests/e2e/theia/GitSsh.spec.ts similarity index 82% rename from tests/e2e/tests/e2e/GitSsh.spec.ts rename to tests/e2e/tests/e2e/theia/GitSsh.spec.ts index 323f806dfd0..57d65747c2a 100644 --- a/tests/e2e/tests/e2e/GitSsh.spec.ts +++ b/tests/e2e/tests/e2e/theia/GitSsh.spec.ts @@ -9,26 +9,26 @@ **********************************************************************/ import { assert } from 'chai'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { GitPlugin } from '../../pageobjects/ide/plugins/GitPlugin'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; -import { TestConstants } from '../../TestConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { WorkspaceNameHandler } from '../../utils/WorkspaceNameHandler'; -import { CheGitApi } from '../../utils/VCS/CheGitApi'; -import { GitHubUtil } from '../../utils/VCS/github/GitHubUtil'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { Dashboard } from '../..'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { GitPlugin } from '../../../pageobjects/ide/theia/plugins/GitPlugin'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { ICheLoginPage } from '../../../pageobjects/login/ICheLoginPage'; +import { TestConstants } from '../../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler'; +import { CheGitApi } from '../../../utils/VCS/CheGitApi'; +import { GitHubUtil } from '../../../utils/VCS/github/GitHubUtil'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const ide: Ide = e2eContainer.get(CLASSES.Ide); diff --git a/tests/e2e/tests/e2e/OpenshiftConnector.spec.ts b/tests/e2e/tests/e2e/theia/OpenshiftConnector.spec.ts similarity index 80% rename from tests/e2e/tests/e2e/OpenshiftConnector.spec.ts rename to tests/e2e/tests/e2e/theia/OpenshiftConnector.spec.ts index 283e2d479da..e62e9db0775 100644 --- a/tests/e2e/tests/e2e/OpenshiftConnector.spec.ts +++ b/tests/e2e/tests/e2e/theia/OpenshiftConnector.spec.ts @@ -8,26 +8,26 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { Buttons, Locations, OpenDialogWidget } from '../../../pageobjects/ide/theia/OpenDialogWidget'; +import { OpenshiftAppExplorerToolbar, OpenshiftContextMenuItems, OpenshiftPlugin } from '../../../pageobjects/ide/theia/plugins/OpenshiftPlugin'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { ICheLoginPage } from '../../../pageobjects/login/ICheLoginPage'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { PreferencesHandlerTheia, TerminalRendererTypeTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; import { Key } from 'selenium-webdriver'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { Buttons, Locations, OpenDialogWidget } from '../../pageobjects/ide/OpenDialogWidget'; -import { OpenshiftAppExplorerToolbar, OpenshiftContextMenuItems, OpenshiftPlugin } from '../../pageobjects/ide/plugins/OpenshiftPlugin'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { Terminal } from '../../pageobjects/ide/Terminal'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; -import { TestConstants } from '../../TestConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { PreferencesHandler, TerminalRendererType } from '../../utils/PreferencesHandler'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -37,7 +37,7 @@ const openshiftPlugin: OpenshiftPlugin = e2eContainer.get(CLASSES.OpenshiftPlugi const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard); const quickOpenContainer: QuickOpenContainer = e2eContainer.get(CLASSES.QuickOpenContainer); const openDialogWidget: OpenDialogWidget = e2eContainer.get(CLASSES.OpenDialogWidget); -const preferencesHalder: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHalder: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const terminal: Terminal = e2eContainer.get(CLASSES.Terminal); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu); @@ -50,7 +50,7 @@ suite('Openshift connector user story', async () => { let wsName: string; suiteSetup(async function () { - preferencesHalder.setTerminalType(TerminalRendererType.dom); + preferencesHalder.setTerminalType(TerminalRendererTypeTheia.dom); const wsConfig = await testWorkspaceUtils.getBaseDevfile(); wsName = wsConfig.metadata!.name!; wsConfig.projects = [ diff --git a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts similarity index 75% rename from tests/e2e/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts rename to tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts index 407876f6a45..cca506ce989 100644 --- a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts +++ b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts @@ -8,17 +8,17 @@ // * SPDX-License-Identifier: EPL-2.0 // **********************************************************************/ -import { e2eContainer } from '../../../inversify.config'; -import { CLASSES } from '../../../inversify.types'; -import { TestConstants } from '../../../TestConstants'; -import { ProjectAndFileTests } from '../../../testsLibrary/ProjectAndFileTests'; -import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; -import { PreferencesHandler } from '../../../utils/PreferencesHandler'; - -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +import { e2eContainer } from '../../../../inversify.config'; +import { CLASSES } from '../../../../inversify.types'; +import { TestConstants } from '../../../../TestConstants'; +import { ProjectAndFileTestsTheia } from '../../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { BrowserTabsUtil } from '../../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTests } from '../../../../testsLibrary/WorkspaceHandlingTests'; +import { PreferencesHandlerTheia } from '../../../../utils/theia/PreferencesHandlerTheia'; + +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://github.com/che-samples/console-java-simple/tree/master/src`; diff --git a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.ts b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts similarity index 74% rename from tests/e2e/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.ts rename to tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts index f4e5f12f7b0..7d36672257d 100644 --- a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.ts +++ b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts @@ -8,17 +8,17 @@ // * SPDX-License-Identifier: EPL-2.0 // **********************************************************************/ -import { e2eContainer } from '../../../inversify.config'; -import { CLASSES } from '../../../inversify.types'; -import { TestConstants } from '../../../TestConstants'; -import { ProjectAndFileTests } from '../../../testsLibrary/ProjectAndFileTests'; -import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; -import { PreferencesHandler } from '../../../utils/PreferencesHandler'; - -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +import { e2eContainer } from '../../../../inversify.config'; +import { CLASSES } from '../../../../inversify.types'; +import { TestConstants } from '../../../../TestConstants'; +import { ProjectAndFileTestsTheia } from '../../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { BrowserTabsUtil } from '../../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTests } from '../../../../testsLibrary/WorkspaceHandlingTests'; +import { PreferencesHandlerTheia } from '../../../../utils/theia/PreferencesHandlerTheia'; + +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://github.com/che-samples/console-java-simple`; diff --git a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts similarity index 74% rename from tests/e2e/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts rename to tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts index 111f2e718c1..0365d01aa16 100644 --- a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts +++ b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts @@ -8,17 +8,17 @@ // * SPDX-License-Identifier: EPL-2.0 // **********************************************************************/ -import { e2eContainer } from '../../../inversify.config'; -import { CLASSES } from '../../../inversify.types'; -import { TestConstants } from '../../../TestConstants'; -import { ProjectAndFileTests } from '../../../testsLibrary/ProjectAndFileTests'; -import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; -import { PreferencesHandler } from '../../../utils/PreferencesHandler'; - -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +import { e2eContainer } from '../../../../inversify.config'; +import { CLASSES } from '../../../../inversify.types'; +import { TestConstants } from '../../../../TestConstants'; +import { ProjectAndFileTestsTheia } from '../../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { BrowserTabsUtil } from '../../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTests } from '../../../../testsLibrary/WorkspaceHandlingTests'; +import { PreferencesHandlerTheia } from '../../../../utils/theia/PreferencesHandlerTheia'; + +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); let factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://github.com/che-samples/console-java-simple/tree/java1.11`; diff --git a/tests/e2e/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.ts b/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts similarity index 92% rename from tests/e2e/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.ts rename to tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts index 168ec0ffc68..fc7a2ae899a 100644 --- a/tests/e2e/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.ts +++ b/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts @@ -7,25 +7,25 @@ // * // * SPDX-License-Identifier: EPL-2.0 // **********************************************************************/ -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { CLASSES } from '../../inversify.types'; -import { DebugView } from '../../pageobjects/ide/DebugView'; -import { DialogWindow } from '../../pageobjects/ide/DialogWindow'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { e2eContainer } from '../../inversify.config'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { Ide, LeftToolbarButton } from '../../pageobjects/ide/Ide'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { CLASSES } from '../../../inversify.types'; +import { DebugView } from '../../../pageobjects/ide/theia/DebugView'; +import { DialogWindow } from '../../../pageobjects/ide/theia/DialogWindow'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { e2eContainer } from '../../../inversify.config'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { Ide, LeftToolbarButton } from '../../../pageobjects/ide/theia/Ide'; import { Key, error, By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { Terminal } from '../../pageobjects/ide/Terminal'; -import { TestConstants } from '../../TestConstants'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; +import { Logger } from '../../../utils/Logger'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; +import { TestConstants } from '../../../TestConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; import * as fs from 'fs'; import axios from 'axios'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); @@ -57,8 +57,6 @@ const SpringAppLocators = { suite('Workspace creation via factory url', async () => { let factoryUrl : string = `${TestConstants.TS_SELENIUM_DEVWORKSPACE_URL}`; - const workspaceRootFolderName: string = 'src'; - suite('Open factory URL', async () => { // this is DevWorkspace test specific - we create the test ws. using factory instead of chectl test(`Navigating to factory URL`, async () => { @@ -272,7 +270,7 @@ async function sendRequestToDebugApp(urlToApp: string) { const httpClient = axios.create(); httpClient.defaults.timeout = 1000; try { - await httpClient.get(urlToApp); + await httpClient.get(urlToApp); } catch (error) { if (error instanceof Error) { if (error.message === 'timeout of 1000ms exceeded') { diff --git a/tests/e2e/tests/e2e_happy_path/HappyPath.spec.ts b/tests/e2e/tests/e2e_happy_path/theia/HappyPath.spec.ts similarity index 92% rename from tests/e2e/tests/e2e_happy_path/HappyPath.spec.ts rename to tests/e2e/tests/e2e_happy_path/theia/HappyPath.spec.ts index ea237f2d887..4861eebac7a 100644 --- a/tests/e2e/tests/e2e_happy_path/HappyPath.spec.ts +++ b/tests/e2e/tests/e2e_happy_path/theia/HappyPath.spec.ts @@ -8,28 +8,28 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { e2eContainer } from '../../inversify.config'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { CLASSES } from '../../inversify.types'; -import { Ide, LeftToolbarButton } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { PreviewWidget } from '../../pageobjects/ide/PreviewWidget'; -import { TestConstants } from '../../TestConstants'; +import { e2eContainer } from '../../../inversify.config'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { Ide, LeftToolbarButton } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { PreviewWidget } from '../../../pageobjects/ide/theia/PreviewWidget'; +import { TestConstants } from '../../../TestConstants'; import { By, Key, error } from 'selenium-webdriver'; -import { DebugView } from '../../pageobjects/ide/DebugView'; -import { DialogWindow } from '../../pageobjects/ide/DialogWindow'; -import { Terminal } from '../../pageobjects/ide/Terminal'; +import { DebugView } from '../../../pageobjects/ide/theia/DebugView'; +import { DialogWindow } from '../../../pageobjects/ide/theia/DialogWindow'; +import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; import * as fs from 'fs'; -import { Workspaces } from '../../pageobjects/dashboard/Workspaces'; -import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { Logger } from '../../utils/Logger'; -import { RightToolBar } from '../../pageobjects/ide/RightToolBar'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { Workspaces } from '../../../pageobjects/dashboard/Workspaces'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { RightToolBar } from '../../../pageobjects/ide/theia/RightToolBar'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -46,6 +46,7 @@ const warningDialog: DialogWindow = e2eContainer.get(CLASSES.DialogWindow); const projectName: string = 'petclinic'; const workspaceRootFolderName: string = 'src'; const workspaceName: string = TestConstants.TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME; + const pathToJavaFolder: string = `${projectName}/${workspaceRootFolderName}/main/java/org/springframework/samples/petclinic`; const pathToChangedJavaFileFolder: string = `${projectName}/${workspaceRootFolderName}/main/java/org/springframework/samples/petclinic/system`; const classPathFilename: string = '.classpath'; diff --git a/tests/e2e/tests/intelij/IntelijOpenWorkspace.spec.ts b/tests/e2e/tests/intelij/IntelijOpenWorkspace.spec.ts index 87fa5e0a330..7c17cebe3ae 100644 --- a/tests/e2e/tests/intelij/IntelijOpenWorkspace.spec.ts +++ b/tests/e2e/tests/intelij/IntelijOpenWorkspace.spec.ts @@ -11,7 +11,7 @@ import { By } from 'selenium-webdriver'; import { e2eContainer } from '../../inversify.config'; import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; +import { Ide } from '../../pageobjects/ide/theia/Ide'; import { DriverHelper } from '../../utils/DriverHelper'; import { TestConstants } from '../../TestConstants'; import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; diff --git a/tests/e2e/tests/load_test/LoadTest.spec.ts b/tests/e2e/tests/load_test/theia/LoadTest.spec.ts similarity index 73% rename from tests/e2e/tests/load_test/LoadTest.spec.ts rename to tests/e2e/tests/load_test/theia/LoadTest.spec.ts index a4a86cfec35..545f397cdfd 100644 --- a/tests/e2e/tests/load_test/LoadTest.spec.ts +++ b/tests/e2e/tests/load_test/theia/LoadTest.spec.ts @@ -8,15 +8,16 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; -import { TestConstants, WorkspaceNameHandler } from '../..'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { ICheLoginPage } from '../../../pageobjects/login/ICheLoginPage'; +import { TestConstants } from '../../../TestConstants'; +import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); diff --git a/tests/e2e/tests/plugins/GitHubPullRequestPlugin.spec.ts b/tests/e2e/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts similarity index 83% rename from tests/e2e/tests/plugins/GitHubPullRequestPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts index 86b17a5ea61..6ea7f9b8830 100644 --- a/tests/e2e/tests/plugins/GitHubPullRequestPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts @@ -8,28 +8,28 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { GitHubPullRequestPlugin } from '../../pageobjects/ide/plugins/GitHubPullRequestPlugin'; -import { GitLoginPage } from '../../pageobjects/third-parties/GitLoginPage'; -import { GitOauthAppsSettings } from '../../pageobjects/third-parties/GitOauthAppsSettings'; -import { WorkspaceNameHandler } from '../../utils/WorkspaceNameHandler'; -import { GitPlugin } from '../../pageobjects/ide/plugins/GitPlugin'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { Logger } from '../../../utils/Logger'; +import { GitHubPullRequestPlugin } from '../../../pageobjects/ide/theia/plugins/GitHubPullRequestPlugin'; +import { GitLoginPage } from '../../../pageobjects/third-parties/GitLoginPage'; +import { GitOauthAppsSettings } from '../../../pageobjects/third-parties/GitOauthAppsSettings'; +import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler'; +import { GitPlugin } from '../../../pageobjects/ide/theia/plugins/GitPlugin'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { Key } from 'selenium-webdriver'; const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); -const workspaceHandling: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const gitHubPullRequestPlugin: GitHubPullRequestPlugin = e2eContainer.get(CLASSES.GitHubPullRequestPlugin); const githubLoginPage: GitLoginPage = e2eContainer.get(CLASSES.GitLoginPage); @@ -39,7 +39,6 @@ const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu); const quickOpenContainer: QuickOpenContainer = e2eContainer.get(CLASSES.QuickOpenContainer); const editor: Editor = e2eContainer.get(CLASSES.Editor); const workspaceNameHandler: WorkspaceNameHandler = e2eContainer.get(CLASSES.WorkspaceNameHandler); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const devfileUrl: string = `https://raw.githubusercontent.com/eclipse/che/main/tests/e2e/files/devfiles/plugins/GitHubPullRequestPlugin.yaml`; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; @@ -137,7 +136,7 @@ suite(`The 'GitHubPullRequestPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remove workspace`, async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandling.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/InstallPluginUsingUI.spec.ts b/tests/e2e/tests/plugins/theia/InstallPluginUsingUI.spec.ts similarity index 76% rename from tests/e2e/tests/plugins/InstallPluginUsingUI.spec.ts rename to tests/e2e/tests/plugins/theia/InstallPluginUsingUI.spec.ts index 9158ac27537..e272ebbccb7 100644 --- a/tests/e2e/tests/plugins/InstallPluginUsingUI.spec.ts +++ b/tests/e2e/tests/plugins/theia/InstallPluginUsingUI.spec.ts @@ -8,23 +8,22 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { PluginsView } from '../../pageobjects/ide/plugins/PluginsView'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { PluginsView } from '../../../pageobjects/ide/theia/plugins/PluginsView'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { Logger } from '../../../utils/Logger'; const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const pluginsView: PluginsView = e2eContainer.get(CLASSES.PluginsView); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); -const workspaceHandling: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const devfileUrl: string = 'https://raw.githubusercontent.com/eclipse/che/main/tests/e2e/files/devfiles/plugins/InstallPluginUsingUI.yaml'; @@ -67,7 +66,7 @@ suite(`The 'InstallPluginUsingUI' test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remove workspace`, async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandling.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/JavaPlugin.spec.ts b/tests/e2e/tests/plugins/theia/JavaPlugin.spec.ts similarity index 80% rename from tests/e2e/tests/plugins/JavaPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/JavaPlugin.spec.ts index d5d84310592..a661b5edf45 100644 --- a/tests/e2e/tests/plugins/JavaPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/JavaPlugin.spec.ts @@ -8,25 +8,25 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; import { Key } from 'selenium-webdriver'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { Logger } from '../../../utils/Logger'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); const editor: Editor = e2eContainer.get(CLASSES.Editor); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devFileUrl: string = 'https://github.com/che-samples/java-guestbook/tree/devfilev2'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devFileUrl}`; diff --git a/tests/e2e/tests/plugins/PhpPlugin.spec.ts b/tests/e2e/tests/plugins/theia/PhpPlugin.spec.ts similarity index 85% rename from tests/e2e/tests/plugins/PhpPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/PhpPlugin.spec.ts index d43a7878a5b..222026e1074 100644 --- a/tests/e2e/tests/plugins/PhpPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/PhpPlugin.spec.ts @@ -8,19 +8,19 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide, LeftToolbarButton } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide, LeftToolbarButton } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Key } from 'selenium-webdriver'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { DebugView } from '../../pageobjects/ide/DebugView'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { DebugView } from '../../../pageobjects/ide/theia/DebugView'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { Logger } from '../../../utils/Logger'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const ide: Ide = e2eContainer.get(CLASSES.Ide); diff --git a/tests/e2e/tests/plugins/PythonPlugin.spec.ts b/tests/e2e/tests/plugins/theia/PythonPlugin.spec.ts similarity index 77% rename from tests/e2e/tests/plugins/PythonPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/PythonPlugin.spec.ts index 981306c655b..df7712bef8e 100644 --- a/tests/e2e/tests/plugins/PythonPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/PythonPlugin.spec.ts @@ -8,25 +8,25 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Key } from 'selenium-webdriver'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { Logger } from '../../../utils/Logger'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { TimeoutConstants } from '../../../TimeoutConstants'; -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devFileUrl: string = 'https://github.com/che-samples/python-hello-world/tree/devfilev2'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devFileUrl}`; diff --git a/tests/e2e/tests/plugins/TypescriptPlugin.spec.ts b/tests/e2e/tests/plugins/theia/TypescriptPlugin.spec.ts similarity index 84% rename from tests/e2e/tests/plugins/TypescriptPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/TypescriptPlugin.spec.ts index 6a2c7807cb7..16b75672427 100644 --- a/tests/e2e/tests/plugins/TypescriptPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/TypescriptPlugin.spec.ts @@ -8,25 +8,25 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide, LeftToolbarButton } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide, LeftToolbarButton } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Key, By } from 'selenium-webdriver'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { DebugView } from '../../pageobjects/ide/DebugView'; -import { Terminal } from '../../pageobjects/ide/Terminal'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; - -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { DebugView } from '../../../pageobjects/ide/theia/DebugView'; +import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { Logger } from '../../../utils/Logger'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; + +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -36,7 +36,7 @@ const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu); const debugView: DebugView = e2eContainer.get(CLASSES.DebugView); const terminal: Terminal = e2eContainer.get(CLASSES.Terminal); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devfileUrl: string = 'https://github.com/che-samples/web-nodejs-sample/tree/typescript-plugin'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; diff --git a/tests/e2e/tests/plugins/VscodeKubernetesPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts similarity index 79% rename from tests/e2e/tests/plugins/VscodeKubernetesPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts index d7e58f1e594..412f7693e14 100644 --- a/tests/e2e/tests/plugins/VscodeKubernetesPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts @@ -8,19 +8,19 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { KubernetesPlugin } from '../../pageobjects/ide/plugins/KubernetesPlugin'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { OpenDialogWidget, Buttons } from '../../pageobjects/ide/OpenDialogWidget'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { KubernetesPlugin } from '../../../pageobjects/ide/theia/plugins/KubernetesPlugin'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { Logger } from '../../../utils/Logger'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { OpenDialogWidget, Buttons } from '../../../pageobjects/ide/theia/OpenDialogWidget'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); diff --git a/tests/e2e/tests/plugins/VscodeShellcheckPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts similarity index 82% rename from tests/e2e/tests/plugins/VscodeShellcheckPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts index a78d960497a..b1b24e02919 100644 --- a/tests/e2e/tests/plugins/VscodeShellcheckPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts @@ -8,23 +8,23 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Key } from 'selenium-webdriver'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { Logger } from '../../../utils/Logger'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const editor: Editor = e2eContainer.get(CLASSES.Editor); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); diff --git a/tests/e2e/tests/plugins/VscodeValePlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeValePlugin.spec.ts similarity index 82% rename from tests/e2e/tests/plugins/VscodeValePlugin.spec.ts rename to tests/e2e/tests/plugins/theia/VscodeValePlugin.spec.ts index a02e592aef4..92d9634e2b9 100644 --- a/tests/e2e/tests/plugins/VscodeValePlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeValePlugin.spec.ts @@ -8,18 +8,18 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { TestConstants } from '../../../TestConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; +import { Logger } from '../../../utils/Logger'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { Key } from 'selenium-webdriver'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { TestConstants } from '../../TestConstants'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { Terminal } from '../../pageobjects/ide/Terminal'; -import { Logger } from '../../utils/Logger'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); diff --git a/tests/e2e/tests/plugins/VscodeXmlPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeXmlPlugin.spec.ts similarity index 83% rename from tests/e2e/tests/plugins/VscodeXmlPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/VscodeXmlPlugin.spec.ts index 1bef6959e9a..f9a0609bf47 100644 --- a/tests/e2e/tests/plugins/VscodeXmlPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeXmlPlugin.spec.ts @@ -8,23 +8,23 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { TestConstants } from '../../../TestConstants'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; import { Key } from 'selenium-webdriver'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { TestConstants } from '../../TestConstants'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; - -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); + +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devfileUrl: string = TestConstants.TS_TEST_WORKSPACE_DEVFILE_REPO || 'https://github.com/che-samples/web-nodejs-sample/tree/xml-plugin'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; diff --git a/tests/e2e/tests/plugins/VscodeYamlPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeYamlPlugin.spec.ts similarity index 81% rename from tests/e2e/tests/plugins/VscodeYamlPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/VscodeYamlPlugin.spec.ts index 208fa308b99..48ce9215c85 100644 --- a/tests/e2e/tests/plugins/VscodeYamlPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeYamlPlugin.spec.ts @@ -8,23 +8,23 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { TestConstants } from '../../../TestConstants'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; import { Key } from 'selenium-webdriver'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { TestConstants } from '../../TestConstants'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; - -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); + +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devfileUrl: string = TestConstants.TS_TEST_WORKSPACE_DEVFILE_REPO || 'https://github.com/che-samples/web-nodejs-sample/tree/yaml-plugin'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; diff --git a/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts b/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts index b06a8fa9d0b..51d62fcebef 100644 --- a/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts +++ b/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts @@ -8,143 +8,118 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ - import 'reflect-metadata'; - import { inject, injectable } from 'inversify'; - import { CLASSES } from '../inversify.types'; - import { Dashboard } from '../pageobjects/dashboard/Dashboard'; - import { CreateWorkspace } from '../pageobjects/dashboard/CreateWorkspace'; - import { Workspaces } from '../pageobjects/dashboard/Workspaces'; - import { BrowserTabsUtil } from '../utils/BrowserTabsUtil'; - import { Logger } from '../utils/Logger'; - import { ApiUrlResolver } from '../utils/workspace/ApiUrlResolver'; - import { TimeoutConstants } from '../TimeoutConstants'; - import { DriverHelper } from '../utils/DriverHelper'; - import { Ide } from '../pageobjects/ide/Ide'; - import { By, error } from 'selenium-webdriver'; - import { TestConstants } from '../TestConstants'; - - @injectable() - export class WorkspaceHandlingTests { - - private static START_WORKSPACE_PAGE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1`); - private static READY_TO_READ_WORKSPACE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1[contains(.,'Starting workspace ')]`); - private static workspaceName: string = 'undefined'; - private static parentGUID: string; - - public static getWorkspaceName(): string { - return WorkspaceHandlingTests.workspaceName; - } - - public static setWorkspaceName(workspaceName: string) { - WorkspaceHandlingTests.workspaceName = workspaceName; - } - - public setWindowHandle(guid: string) { - WorkspaceHandlingTests.parentGUID = guid; - } - - public getWindowHandle(): string { - return WorkspaceHandlingTests.parentGUID; - } - - constructor( - @inject(CLASSES.Dashboard) private readonly dashboard: Dashboard, - @inject(CLASSES.CreateWorkspace) private readonly createWorkspace: CreateWorkspace, - @inject(CLASSES.Workspaces) private readonly workspaces: Workspaces, - @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil, - @inject(CLASSES.ApiUrlResolver) private readonly apiUrlResolver: ApiUrlResolver, - @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper, - @inject(CLASSES.Ide) private readonly ide: Ide) {} - - public createAndOpenWorkspace(stack: string) { - test(`Create and open new workspace, stack:${stack}`, async () => { - await this.dashboard.waitPage(); - Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); - await this.apiUrlResolver.getWorkspacesApiUrl(); - await this.dashboard.clickCreateWorkspaceButton(); - await this.createWorkspace.waitPage(); - WorkspaceHandlingTests.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle(); - await this.createWorkspace.clickOnSample(stack); - await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests.parentGUID, TimeoutConstants.TS_IDE_LOAD_TIMEOUT); - }); - } - - public openExistingWorkspace(workspaceName: string) { - test('Open and start existing workspace', async () => { - await this.dashboard.waitPage(); - Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); - await this.apiUrlResolver.getWorkspacesApiUrl(); - await this.dashboard.clickWorkspacesButton(); - await this.workspaces.waitPage(); - await this.workspaces.clickOpenButton(workspaceName); - }); - } - - public obtainWorkspaceNameFromStartingPage() { - test('Obtain workspace name from workspace loader page', async() => { - try { - Logger.info("Waiting for workspace name on workspace loader page"); - await this.driverHelper.waitVisibility(WorkspaceHandlingTests.READY_TO_READ_WORKSPACE_NAME_LOCATOR, TimeoutConstants.TS_WAIT_LOADER_PRESENCE_TIMEOUT); - - const timeout: number = TimeoutConstants.TS_IDE_LOAD_TIMEOUT; - const polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING; - const attempts: number = Math.ceil(timeout / polling); - let startingWorkspaceLineContent: string; - - for (let i = 0; i < attempts; i++) { - startingWorkspaceLineContent = await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests.START_WORKSPACE_PAGE_NAME_LOCATOR).getAttribute('innerHTML'); - - // cutting away leading text - WorkspaceHandlingTests.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim(); - if (WorkspaceHandlingTests.workspaceName !== '') { - Logger.info(`Obtained workspace name from workspace loader page: ${WorkspaceHandlingTests.workspaceName}`); - break; - } - - this.driverHelper.sleep(polling); - } - } catch (err) { - Logger.error(`Failed to obtain workspace name from workspace loader page: ${err}`); - throw err; - } - }); - } - - public switchBackToFirstOpenIdeTabFromLeftToRight() { - test('WorkspaceHandlingTests.switchBackToIdeTab', async () => { - let tabs = await this.driverHelper.getDriver().getAllWindowHandles(); - Logger.trace(`WorkspaceHandlingTests.switchBackToIdeTab Found ${tabs.length} window handles, iterating...`); - for (let i = 0; i < tabs.length; i++) { - await this.browserTabsUtil.switchToWindow(tabs[i]); - try { - await this.ide.waitIde(TimeoutConstants.TS_IDE_LOAD_TIMEOUT); - Logger.debug(`WorkspaceHandlingTests.switchBackToIdeTab located and switched to IDE tab`); - return; - } catch (err) { - if (err instanceof error.TimeoutError) { - Logger.warn(`WorkspaceHandlingTests.switchBackToIdeTab Locator timed out, trying with another window handle.`); - continue; - } - Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Received unexpected exception while trying to locate IDE tab:${err}`); - throw err; - } - } - Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Failed to locate IDE tab, out of window handles.`); - }); - } - - public async stopWorkspace(workspaceName: string) { - await this.dashboard.openDashboard(); - await this.dashboard.stopWorkspaceByUI(workspaceName); - } - - public async removeWorkspace(workspaceName: string) { - await this.dashboard.openDashboard(); - await this.dashboard.deleteStoppedWorkspaceByUI(workspaceName); - } - - public async stopAndRemoveWorkspace(workspaceName: string) { - await this.dashboard.openDashboard(); - await this.dashboard.stopAndRemoveWorkspaceByUI(workspaceName); - } - } +import 'reflect-metadata'; +import { inject, injectable } from 'inversify'; +import { CLASSES } from '../inversify.types'; +import { Dashboard } from '../pageobjects/dashboard/Dashboard'; +import { CreateWorkspace } from '../pageobjects/dashboard/CreateWorkspace'; +import { Workspaces } from '../pageobjects/dashboard/Workspaces'; +import { BrowserTabsUtil } from '../utils/BrowserTabsUtil'; +import { Logger } from '../utils/Logger'; +import { ApiUrlResolver } from '../utils/workspace/ApiUrlResolver'; +import { TimeoutConstants } from '../TimeoutConstants'; +import { DriverHelper } from '../utils/DriverHelper'; +import { By } from 'selenium-webdriver'; +import { TestConstants } from '../TestConstants'; + +@injectable() +export class WorkspaceHandlingTests { + + private static START_WORKSPACE_PAGE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1`); + private static READY_TO_READ_WORKSPACE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1[contains(.,'Starting workspace ')]`); + private static workspaceName: string = 'undefined'; + private static parentGUID: string; + + public static getWorkspaceName(): string { + return WorkspaceHandlingTests.workspaceName; + } + + public static setWorkspaceName(workspaceName: string) { + WorkspaceHandlingTests.workspaceName = workspaceName; + } + + public setWindowHandle(guid: string) { + WorkspaceHandlingTests.parentGUID = guid; + } + + public getWindowHandle(): string { + return WorkspaceHandlingTests.parentGUID; + } + + constructor( + @inject(CLASSES.Dashboard) private readonly dashboard: Dashboard, + @inject(CLASSES.CreateWorkspace) private readonly createWorkspace: CreateWorkspace, + @inject(CLASSES.Workspaces) private readonly workspaces: Workspaces, + @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil, + @inject(CLASSES.ApiUrlResolver) private readonly apiUrlResolver: ApiUrlResolver, + @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) {} + + public createAndOpenWorkspace(stack: string) { + test(`Create and open new workspace, stack:${stack}`, async () => { + await this.dashboard.waitPage(); + Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); + await this.apiUrlResolver.getWorkspacesApiUrl(); + await this.dashboard.clickCreateWorkspaceButton(); + await this.createWorkspace.waitPage(); + WorkspaceHandlingTests.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle(); + await this.createWorkspace.clickOnSample(stack); + await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests.parentGUID, TimeoutConstants.TS_IDE_LOAD_TIMEOUT); + }); + } + + public openExistingWorkspace(workspaceName: string) { + test('Open and start existing workspace', async () => { + await this.dashboard.waitPage(); + Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); + await this.apiUrlResolver.getWorkspacesApiUrl(); + await this.dashboard.clickWorkspacesButton(); + await this.workspaces.waitPage(); + await this.workspaces.clickOpenButton(workspaceName); + }); + } + + public obtainWorkspaceNameFromStartingPage() { + test('Obtain workspace name from workspace loader page', async() => { + try { + Logger.info('Waiting for workspace name on workspace loader page'); + await this.driverHelper.waitVisibility(WorkspaceHandlingTests.READY_TO_READ_WORKSPACE_NAME_LOCATOR, TimeoutConstants.TS_WAIT_LOADER_PRESENCE_TIMEOUT); + + const timeout: number = TimeoutConstants.TS_IDE_LOAD_TIMEOUT; + const polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING; + const attempts: number = Math.ceil(timeout / polling); + let startingWorkspaceLineContent: string; + + for (let i = 0; i < attempts; i++) { + startingWorkspaceLineContent = await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests.START_WORKSPACE_PAGE_NAME_LOCATOR).getAttribute('innerHTML'); + + // cutting away leading text + WorkspaceHandlingTests.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim(); + if (WorkspaceHandlingTests.workspaceName !== '') { + Logger.info(`Obtained workspace name from workspace loader page: ${WorkspaceHandlingTests.workspaceName}`); + break; + } + + this.driverHelper.sleep(polling); + } + } catch (err) { + Logger.error(`Failed to obtain workspace name from workspace loader page: ${err}`); + throw err; + } + }); + } + + public async stopWorkspace(workspaceName: string) { + await this.dashboard.openDashboard(); + await this.dashboard.stopWorkspaceByUI(workspaceName); + } + + public async removeWorkspace(workspaceName: string) { + await this.dashboard.openDashboard(); + await this.dashboard.deleteStoppedWorkspaceByUI(workspaceName); + } + + public async stopAndRemoveWorkspace(workspaceName: string) { + await this.dashboard.openDashboard(); + await this.dashboard.stopAndRemoveWorkspaceByUI(workspaceName); + } +} diff --git a/tests/e2e/testsLibrary/CodeExecutionTests.ts b/tests/e2e/testsLibrary/theia/CodeExecutionTestsTheia.ts similarity index 90% rename from tests/e2e/testsLibrary/CodeExecutionTests.ts rename to tests/e2e/testsLibrary/theia/CodeExecutionTestsTheia.ts index badc63995c3..c57effe5805 100644 --- a/tests/e2e/testsLibrary/CodeExecutionTests.ts +++ b/tests/e2e/testsLibrary/theia/CodeExecutionTestsTheia.ts @@ -10,21 +10,21 @@ import 'reflect-metadata'; import Axios from 'axios'; -import { CLASSES } from '../inversify.types'; +import { CLASSES } from '../../inversify.types'; import { inject, injectable } from 'inversify'; import { By, error, Key } from 'selenium-webdriver'; -import { Ide } from '../pageobjects/ide/Ide'; -import { Terminal } from '../pageobjects/ide/Terminal'; -import { TopMenu } from '../pageobjects/ide/TopMenu'; -import { DialogWindow } from '../pageobjects/ide/DialogWindow'; -import { DriverHelper } from '../utils/DriverHelper'; -import { Logger } from '../utils/Logger'; -import { QuickOpenContainer } from '../pageobjects/ide/QuickOpenContainer'; -import { WorkspaceHandlingTests } from './WorkspaceHandlingTests'; -import { BrowserTabsUtil } from '../utils/BrowserTabsUtil'; +import { Ide } from '../../pageobjects/ide/theia/Ide'; +import { Terminal } from '../../pageobjects/ide/theia/Terminal'; +import { TopMenu } from '../../pageobjects/ide/theia/TopMenu'; +import { DialogWindow } from '../../pageobjects/ide/theia/DialogWindow'; +import { DriverHelper } from '../../utils/DriverHelper'; +import { Logger } from '../../utils/Logger'; +import { QuickOpenContainer } from '../../pageobjects/ide/theia/QuickOpenContainer'; +import { WorkspaceHandlingTests } from '../WorkspaceHandlingTests'; +import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; @injectable() -export class CodeExecutionTests { +export class CodeExecutionTestsTheia { private static lastApplicationUrl: string = ''; @@ -115,7 +115,7 @@ export class CodeExecutionTests { this.workspaceHandlingTests.setWindowHandle(await this.browserTabsUtil.getCurrentWindowHandle()); await this.ide.clickOnNotificationButton(notificationText, buttonText); await this.driverHelper.wait(5_000); - CodeExecutionTests.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); + CodeExecutionTestsTheia.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); }); } @@ -129,7 +129,7 @@ export class CodeExecutionTests { this.workspaceHandlingTests.setWindowHandle(await this.browserTabsUtil.getCurrentWindowHandle()); await this.ide.clickOnNotificationButton(notificationText, 'Open In Preview'); await this.driverHelper.wait(5_000); - CodeExecutionTests.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); + CodeExecutionTestsTheia.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); }); } @@ -140,7 +140,7 @@ export class CodeExecutionTests { this.workspaceHandlingTests.setWindowHandle(await this.browserTabsUtil.getCurrentWindowHandle()); await this.ide.waitNotificationAndOpenLink(portOpenText, timeout); await this.driverHelper.wait(5_000); - CodeExecutionTests.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); + CodeExecutionTestsTheia.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); }); } @@ -169,7 +169,7 @@ export class CodeExecutionTests { } public getLastApplicationUrl(): string { - return CodeExecutionTests.lastApplicationUrl; + return CodeExecutionTestsTheia.lastApplicationUrl; } /** diff --git a/tests/e2e/testsLibrary/LanguageServerTests.ts b/tests/e2e/testsLibrary/theia/LanguageServerTestsTheia.ts similarity index 94% rename from tests/e2e/testsLibrary/LanguageServerTests.ts rename to tests/e2e/testsLibrary/theia/LanguageServerTestsTheia.ts index 6875d085715..2a7199f331f 100644 --- a/tests/e2e/testsLibrary/LanguageServerTests.ts +++ b/tests/e2e/testsLibrary/theia/LanguageServerTestsTheia.ts @@ -10,18 +10,18 @@ import 'reflect-metadata'; import { inject, injectable } from 'inversify'; -import { CLASSES } from '../inversify.types'; -import { TimeoutConstants } from '../TimeoutConstants'; -import { Editor } from '../pageobjects/ide/Editor'; -import { Ide, LeftToolbarButton } from '../pageobjects/ide/Ide'; -import { TopMenu } from '../pageobjects/ide/TopMenu'; -import { DebugView } from '../pageobjects/ide/DebugView'; +import { CLASSES } from '../../inversify.types'; +import { TimeoutConstants } from '../../TimeoutConstants'; +import { Editor } from '../../pageobjects/ide/theia/Editor'; +import { Ide, LeftToolbarButton } from '../../pageobjects/ide/theia/Ide'; +import { TopMenu } from '../../pageobjects/ide/theia/TopMenu'; +import { DebugView } from '../../pageobjects/ide/theia/DebugView'; import { Key, error } from 'selenium-webdriver'; -import { Logger } from '../utils/Logger'; -import { BrowserTabsUtil } from '../utils/BrowserTabsUtil'; +import { Logger } from '../../utils/Logger'; +import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; @injectable() -export class LanguageServerTests { +export class LanguageServerTestsTheia { constructor( @inject(CLASSES.Editor) private readonly editor: Editor, diff --git a/tests/e2e/testsLibrary/ProjectAndFileTests.ts b/tests/e2e/testsLibrary/theia/ProjectAndFileTestsTheia.ts similarity index 59% rename from tests/e2e/testsLibrary/ProjectAndFileTests.ts rename to tests/e2e/testsLibrary/theia/ProjectAndFileTestsTheia.ts index f6b09b4a8d2..064a35aaa07 100644 --- a/tests/e2e/testsLibrary/ProjectAndFileTests.ts +++ b/tests/e2e/testsLibrary/theia/ProjectAndFileTestsTheia.ts @@ -10,24 +10,50 @@ import 'reflect-metadata'; import { inject, injectable } from 'inversify'; -import { By } from 'selenium-webdriver'; -import { Ide } from '../pageobjects/ide/Ide'; -import { ProjectTree } from '../pageobjects/ide/ProjectTree'; -import { OpenEditors } from '../pageobjects/ide/OpenEditors'; -import { Editor } from '../pageobjects/ide/Editor'; -import { TimeoutConstants } from '../TimeoutConstants'; -import { DriverHelper } from '../utils/DriverHelper'; -import { CLASSES } from '../inversify.types'; +import { By, error } from 'selenium-webdriver'; +import { Ide } from '../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../pageobjects/ide/theia/ProjectTree'; +import { OpenEditors } from '../../pageobjects/ide/theia/OpenEditors'; +import { Editor } from '../../pageobjects/ide/theia/Editor'; +import { TimeoutConstants } from '../../TimeoutConstants'; +import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../inversify.types'; +import { Logger } from '../../utils/Logger'; +import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; @injectable() -export class ProjectAndFileTests { +export class ProjectAndFileTestsTheia { constructor( @inject(CLASSES.Ide) private readonly ide: Ide, @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper, @inject(CLASSES.ProjectTree) private readonly projectTree: ProjectTree, @inject(CLASSES.OpenEditors) private readonly openEditors: OpenEditors, - @inject(CLASSES.Editor) private readonly editor: Editor) {} + @inject(CLASSES.Editor) private readonly editor: Editor, + @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil) {} + + public switchBackToFirstOpenIdeTabFromLeftToRight() { + test('WorkspaceHandlingTests.switchBackToIdeTab', async () => { + let tabs = await this.driverHelper.getDriver().getAllWindowHandles(); + Logger.trace(`WorkspaceHandlingTests.switchBackToIdeTab Found ${tabs.length} window handles, iterating...`); + for (let i = 0; i < tabs.length; i++) { + await this.browserTabsUtil.switchToWindow(tabs[i]); + try { + await this.ide.waitIde(TimeoutConstants.TS_IDE_LOAD_TIMEOUT); + Logger.debug(`WorkspaceHandlingTests.switchBackToIdeTab located and switched to IDE tab`); + return; + } catch (err) { + if (err instanceof error.TimeoutError) { + Logger.warn(`WorkspaceHandlingTests.switchBackToIdeTab Locator timed out, trying with another window handle.`); + continue; + } + Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Received unexpected exception while trying to locate IDE tab:${err}`); + throw err; + } + } + Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Failed to locate IDE tab, out of window handles.`); + }); + } public waitWorkspaceReadiness(sampleName : string, folder: string, checkNotification: boolean = true, restartWorkspaceDialogIsExpected: boolean = false) { test('Wait for workspace readiness', async () => { diff --git a/tests/e2e/utils/DriverHelper.ts b/tests/e2e/utils/DriverHelper.ts index 163a14d7ad7..5b6700ab8e5 100644 --- a/tests/e2e/utils/DriverHelper.ts +++ b/tests/e2e/utils/DriverHelper.ts @@ -10,7 +10,7 @@ import { IDriver } from '../driver/IDriver'; import { inject, injectable } from 'inversify'; import { TYPES } from '../inversify.types'; -import { error, ActionSequence } from 'selenium-webdriver'; +import { error, Actions } from 'selenium-webdriver'; import 'reflect-metadata'; import { ThenableWebDriver, By, until, WebElement } from 'selenium-webdriver'; import { TestConstants } from '../TestConstants'; @@ -26,7 +26,7 @@ export class DriverHelper { this.driver = driver.get(); } - public getAction(): ActionSequence { + public getAction(): Actions { Logger.trace('DriverHelper.getAction'); return this.driver.actions(); @@ -717,7 +717,7 @@ export class DriverHelper { } try { - await this.getAction().mouseMove(element).perform(); + await this.getAction().move({origin: element}).perform(); return; } catch (err) { if (err instanceof error.StaleElementReferenceError) { diff --git a/tests/e2e/utils/PreferencesHandler.ts b/tests/e2e/utils/theia/PreferencesHandlerTheia.ts similarity index 88% rename from tests/e2e/utils/PreferencesHandler.ts rename to tests/e2e/utils/theia/PreferencesHandlerTheia.ts index 8d55bb1dc7f..8c5274eb8d7 100644 --- a/tests/e2e/utils/PreferencesHandler.ts +++ b/tests/e2e/utils/theia/PreferencesHandlerTheia.ts @@ -9,27 +9,27 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { Logger } from './Logger'; -import { CLASSES } from '../inversify.types'; -import { CheApiRequestHandler } from './requestHandlers/CheApiRequestHandler'; -import { Editor } from '../pageobjects/ide/Editor'; -import { QuickOpenContainer } from '../pageobjects/ide/QuickOpenContainer'; -import { TopMenu } from '../pageobjects/ide/TopMenu'; +import { Logger } from '../Logger'; +import { CLASSES } from '../../inversify.types'; +import { CheApiRequestHandler } from '../requestHandlers/CheApiRequestHandler'; +import { Editor } from '../../pageobjects/ide/theia/Editor'; +import { QuickOpenContainer } from '../../pageobjects/ide/theia/QuickOpenContainer'; +import { TopMenu } from '../../pageobjects/ide/theia/TopMenu'; import { Key } from 'selenium-webdriver'; -export enum TerminalRendererType { +export enum TerminalRendererTypeTheia { canvas = 'canvas', dom = 'dom' } -export enum AskForConfirmationType { +export enum AskForConfirmationTypeTheia { never = 'never', ifRquired = 'ifRequired', always = 'always' } @injectable() -export class PreferencesHandler { +export class PreferencesHandlerTheia { constructor(@inject(CLASSES.CheApiRequestHandler) private readonly requestHandler: CheApiRequestHandler, @inject(CLASSES.Editor) private readonly editor: Editor, @@ -61,7 +61,7 @@ export class PreferencesHandler { /** * Works properly only if set before workspace startup. */ - public async setTerminalType(type: TerminalRendererType) { + public async setTerminalType(type: TerminalRendererTypeTheia) { Logger.debug('PreferencesHandler.setTerminalToDom'); await this.setPreference('terminal.integrated.rendererType', type); } @@ -70,7 +70,7 @@ export class PreferencesHandler { * * @param askForConfirmation possible values are "never", "ifRequired" and "always" */ - public async setConfirmExit(askForConfirmation: AskForConfirmationType) { + public async setConfirmExit(askForConfirmation: AskForConfirmationTypeTheia) { Logger.debug(`PreferencesHandler.setConfirmExit to ${askForConfirmation}`); await this.setPreference(`application.confirmExit`, askForConfirmation); }