@theia/playwright 1.25.0-next.9 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +26 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +53 -0
- package/lib/index.js.map +1 -0
- package/lib/tests/fixtures/theia-fixture.d.ts +4 -0
- package/lib/tests/fixtures/theia-fixture.d.ts.map +1 -0
- package/lib/tests/fixtures/theia-fixture.js +24 -0
- package/lib/tests/fixtures/theia-fixture.js.map +1 -0
- package/lib/tests/theia-app.test.d.ts +2 -0
- package/lib/tests/theia-app.test.d.ts.map +1 -0
- package/lib/tests/theia-app.test.js +30 -0
- package/lib/tests/theia-app.test.js.map +1 -0
- package/lib/tests/theia-explorer-view.test.d.ts +2 -0
- package/lib/tests/theia-explorer-view.test.d.ts.map +1 -0
- package/lib/tests/theia-explorer-view.test.js +110 -0
- package/lib/tests/theia-explorer-view.test.js.map +1 -0
- package/lib/tests/theia-main-menu.test.d.ts +2 -0
- package/lib/tests/theia-main-menu.test.d.ts.map +1 -0
- package/lib/tests/theia-main-menu.test.js +74 -0
- package/lib/tests/theia-main-menu.test.js.map +1 -0
- package/lib/tests/theia-preference-view.test.d.ts +2 -0
- package/lib/tests/theia-preference-view.test.d.ts.map +1 -0
- package/lib/tests/theia-preference-view.test.js +79 -0
- package/lib/tests/theia-preference-view.test.js.map +1 -0
- package/lib/tests/theia-problems-view.test.d.ts +2 -0
- package/lib/tests/theia-problems-view.test.d.ts.map +1 -0
- package/lib/tests/theia-problems-view.test.js +53 -0
- package/lib/tests/theia-problems-view.test.js.map +1 -0
- package/lib/tests/theia-quick-command.test.d.ts +2 -0
- package/lib/tests/theia-quick-command.test.d.ts.map +1 -0
- package/lib/tests/theia-quick-command.test.js +54 -0
- package/lib/tests/theia-quick-command.test.js.map +1 -0
- package/lib/tests/theia-sample-app.test.d.ts +2 -0
- package/lib/tests/theia-sample-app.test.d.ts.map +1 -0
- package/lib/tests/theia-sample-app.test.js +81 -0
- package/lib/tests/theia-sample-app.test.js.map +1 -0
- package/lib/tests/theia-status-bar.test.d.ts +2 -0
- package/lib/tests/theia-status-bar.test.d.ts.map +1 -0
- package/lib/tests/theia-status-bar.test.js +42 -0
- package/lib/tests/theia-status-bar.test.js.map +1 -0
- package/lib/tests/theia-text-editor.test.d.ts +2 -0
- package/lib/tests/theia-text-editor.test.d.ts.map +1 -0
- package/lib/tests/theia-text-editor.test.js +148 -0
- package/lib/tests/theia-text-editor.test.js.map +1 -0
- package/lib/tests/theia-workspace.test.d.ts +2 -0
- package/lib/tests/theia-workspace.test.d.ts.map +1 -0
- package/lib/tests/theia-workspace.test.js +48 -0
- package/lib/tests/theia-workspace.test.js.map +1 -0
- package/lib/theia-about-dialog.d.ts +5 -0
- package/lib/theia-about-dialog.d.ts.map +1 -0
- package/lib/theia-about-dialog.js +27 -0
- package/lib/theia-about-dialog.js.map +1 -0
- package/lib/theia-app.d.ts +44 -0
- package/lib/theia-app.d.ts.map +1 -0
- package/lib/theia-app.js +136 -0
- package/lib/theia-app.js.map +1 -0
- package/lib/theia-context-menu.d.ts +9 -0
- package/lib/theia-context-menu.d.ts.map +1 -0
- package/lib/theia-context-menu.js +38 -0
- package/lib/theia-context-menu.js.map +1 -0
- package/lib/theia-dialog.d.ts +28 -0
- package/lib/theia-dialog.d.ts.map +1 -0
- package/lib/theia-dialog.js +99 -0
- package/lib/theia-dialog.js.map +1 -0
- package/lib/theia-editor.d.ts +10 -0
- package/lib/theia-editor.d.ts.map +1 -0
- package/lib/theia-editor.js +69 -0
- package/lib/theia-editor.js.map +1 -0
- package/lib/theia-explorer-view.d.ts +39 -0
- package/lib/theia-explorer-view.d.ts.map +1 -0
- package/lib/theia-explorer-view.js +210 -0
- package/lib/theia-explorer-view.js.map +1 -0
- package/lib/theia-main-menu.d.ts +13 -0
- package/lib/theia-main-menu.d.ts.map +1 -0
- package/lib/theia-main-menu.js +54 -0
- package/lib/theia-main-menu.js.map +1 -0
- package/lib/theia-menu-item.d.ts +14 -0
- package/lib/theia-menu-item.d.ts.map +1 -0
- package/lib/theia-menu-item.js +55 -0
- package/lib/theia-menu-item.js.map +1 -0
- package/lib/theia-menu.d.ts +17 -0
- package/lib/theia-menu.d.ts.map +1 -0
- package/lib/theia-menu.js +87 -0
- package/lib/theia-menu.js.map +1 -0
- package/lib/theia-notification-indicator.d.ts +9 -0
- package/lib/theia-notification-indicator.d.ts.map +1 -0
- package/lib/theia-notification-indicator.js +45 -0
- package/lib/theia-notification-indicator.js.map +1 -0
- package/lib/theia-notification-overlay.d.ts +23 -0
- package/lib/theia-notification-overlay.d.ts.map +1 -0
- package/lib/theia-notification-overlay.js +80 -0
- package/lib/theia-notification-overlay.js.map +1 -0
- package/lib/theia-page-object.d.ts +8 -0
- package/lib/theia-page-object.d.ts.map +1 -0
- package/lib/theia-page-object.js +28 -0
- package/lib/theia-page-object.js.map +1 -0
- package/lib/theia-preference-view.d.ts +51 -0
- package/lib/theia-preference-view.d.ts.map +1 -0
- package/lib/theia-preference-view.js +197 -0
- package/lib/theia-preference-view.js.map +1 -0
- package/lib/theia-problem-indicator.d.ts +9 -0
- package/lib/theia-problem-indicator.d.ts.map +1 -0
- package/lib/theia-problem-indicator.js +40 -0
- package/lib/theia-problem-indicator.js.map +1 -0
- package/lib/theia-problem-view.d.ts +6 -0
- package/lib/theia-problem-view.d.ts.map +1 -0
- package/lib/theia-problem-view.js +31 -0
- package/lib/theia-problem-view.js.map +1 -0
- package/lib/theia-quick-command-palette.d.ts +12 -0
- package/lib/theia-quick-command-palette.d.ts.map +1 -0
- package/lib/theia-quick-command-palette.js +74 -0
- package/lib/theia-quick-command-palette.js.map +1 -0
- package/lib/theia-rename-dialog.d.ts +6 -0
- package/lib/theia-rename-dialog.d.ts.map +1 -0
- package/lib/theia-rename-dialog.js +36 -0
- package/lib/theia-rename-dialog.js.map +1 -0
- package/lib/theia-status-bar.d.ts +14 -0
- package/lib/theia-status-bar.d.ts.map +1 -0
- package/lib/theia-status-bar.js +40 -0
- package/lib/theia-status-bar.js.map +1 -0
- package/lib/theia-status-indicator.d.ts +15 -0
- package/lib/theia-status-indicator.d.ts.map +1 -0
- package/lib/theia-status-indicator.js +77 -0
- package/lib/theia-status-indicator.js.map +1 -0
- package/lib/theia-text-editor.d.ts +28 -0
- package/lib/theia-text-editor.d.ts.map +1 -0
- package/lib/theia-text-editor.js +149 -0
- package/lib/theia-text-editor.js.map +1 -0
- package/lib/theia-toggle-bottom-indicator.d.ts +5 -0
- package/lib/theia-toggle-bottom-indicator.d.ts.map +1 -0
- package/lib/theia-toggle-bottom-indicator.js +27 -0
- package/lib/theia-toggle-bottom-indicator.js.map +1 -0
- package/lib/theia-tree-node.d.ts +17 -0
- package/lib/theia-tree-node.d.ts.map +1 -0
- package/lib/theia-tree-node.js +54 -0
- package/lib/theia-tree-node.js.map +1 -0
- package/lib/theia-view.d.ts +33 -0
- package/lib/theia-view.d.ts.map +1 -0
- package/lib/theia-view.js +152 -0
- package/lib/theia-view.js.map +1 -0
- package/lib/theia-workspace.d.ts +19 -0
- package/lib/theia-workspace.d.ts.map +1 -0
- package/lib/theia-workspace.js +70 -0
- package/lib/theia-workspace.js.map +1 -0
- package/lib/util.d.ts +20 -0
- package/lib/util.d.ts.map +1 -0
- package/lib/util.js +94 -0
- package/lib/util.js.map +1 -0
- package/package.json +8 -6
- package/src/index.ts +41 -0
- package/src/tests/fixtures/theia-fixture.ts +25 -0
- package/src/tests/resources/sample-files1/sample.txt +4 -0
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-1/sampleFile1-1-1.txt +1 -0
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-1/sampleFile1-1-2.txt +1 -0
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-2/sampleFile1-2-1.txt +1 -0
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-2/sampleFile1-2-2.txt +1 -0
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-1/sampleFile2-1-1.txt +1 -0
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-1/sampleFile2-1-2.txt +1 -0
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-2/sampleFile2-2-1.txt +1 -0
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-2/sampleFile2-2-2.txt +1 -0
- package/src/tests/resources/sample-files2/another-sample.txt +1 -0
- package/src/tests/theia-app.test.ts +34 -0
- package/src/tests/theia-explorer-view.test.ts +124 -0
- package/src/tests/theia-main-menu.test.ts +89 -0
- package/src/tests/theia-preference-view.test.ts +93 -0
- package/src/tests/theia-problems-view.test.ts +60 -0
- package/src/tests/theia-quick-command.test.ts +61 -0
- package/src/tests/theia-sample-app.test.ts +92 -0
- package/src/tests/theia-status-bar.test.ts +47 -0
- package/src/tests/theia-text-editor.test.ts +176 -0
- package/src/tests/theia-workspace.test.ts +51 -0
- package/src/theia-app.ts +32 -14
- package/src/theia-workspace.ts +4 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaRenameDialog = void 0;
|
|
19
|
+
const theia_dialog_1 = require("./theia-dialog");
|
|
20
|
+
const util_1 = require("./util");
|
|
21
|
+
class TheiaRenameDialog extends theia_dialog_1.TheiaDialog {
|
|
22
|
+
async enterNewName(newName) {
|
|
23
|
+
const inputField = await this.page.waitForSelector(`${this.blockSelector} .theia-input`);
|
|
24
|
+
await inputField.press(util_1.OSUtil.isMacOS ? 'Meta+a' : 'Control+a');
|
|
25
|
+
await inputField.type(newName, { delay: util_1.USER_KEY_TYPING_DELAY });
|
|
26
|
+
await this.page.waitForTimeout(util_1.USER_KEY_TYPING_DELAY);
|
|
27
|
+
}
|
|
28
|
+
async confirm() {
|
|
29
|
+
if (!await this.validationResult()) {
|
|
30
|
+
throw new Error(`Unexpected validation error in TheiaRenameDialog: '${await this.getValidationText()}`);
|
|
31
|
+
}
|
|
32
|
+
await this.clickMainButton();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.TheiaRenameDialog = TheiaRenameDialog;
|
|
36
|
+
//# sourceMappingURL=theia-rename-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-rename-dialog.js","sourceRoot":"","sources":["../src/theia-rename-dialog.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAEhF,iDAA6C;AAC7C,iCAAuD;AAEvD,MAAa,iBAAkB,SAAQ,0BAAW;IAE9C,KAAK,CAAC,YAAY,CAAC,OAAe;QAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,aAAa,eAAe,CAAC,CAAC;QACzF,MAAM,UAAU,CAAC,KAAK,CAAC,aAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,4BAAqB,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,4BAAqB,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,sDAAsD,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;SAC3G;QACD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC;CAEJ;AAhBD,8CAgBC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaApp } from './theia-app';
|
|
3
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
+
import { TheiaStatusIndicator } from './theia-status-indicator';
|
|
5
|
+
export declare class TheiaStatusBar extends TheiaPageObject {
|
|
6
|
+
selector: string;
|
|
7
|
+
protected statusBarElementHandle(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
8
|
+
statusIndicator<T extends TheiaStatusIndicator>(statusIndicatorFactory: {
|
|
9
|
+
new (app: TheiaApp): T;
|
|
10
|
+
}): Promise<T>;
|
|
11
|
+
waitForVisible(): Promise<void>;
|
|
12
|
+
isVisible(): Promise<boolean>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=theia-status-bar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-status-bar.d.ts","sourceRoot":"","sources":["../src/theia-status-bar.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,qBAAa,cAAe,SAAQ,eAAe;IAE/C,QAAQ,SAAyB;cAEjB,sBAAsB,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAI3F,eAAe,CAAC,CAAC,SAAS,oBAAoB,EAAE,sBAAsB,EAAE;QAAE,KAAI,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAI9G,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;CAKtC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaStatusBar = void 0;
|
|
19
|
+
const theia_page_object_1 = require("./theia-page-object");
|
|
20
|
+
class TheiaStatusBar extends theia_page_object_1.TheiaPageObject {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.selector = 'div#theia-statusBar';
|
|
24
|
+
}
|
|
25
|
+
async statusBarElementHandle() {
|
|
26
|
+
return this.page.$(this.selector);
|
|
27
|
+
}
|
|
28
|
+
async statusIndicator(statusIndicatorFactory) {
|
|
29
|
+
return new statusIndicatorFactory(this.app);
|
|
30
|
+
}
|
|
31
|
+
async waitForVisible() {
|
|
32
|
+
await this.page.waitForSelector(this.selector, { state: 'visible' });
|
|
33
|
+
}
|
|
34
|
+
async isVisible() {
|
|
35
|
+
const statusBar = await this.statusBarElementHandle();
|
|
36
|
+
return !!statusBar && statusBar.isVisible();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.TheiaStatusBar = TheiaStatusBar;
|
|
40
|
+
//# sourceMappingURL=theia-status-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-status-bar.js","sourceRoot":"","sources":["../src/theia-status-bar.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAKhF,2DAAsD;AAGtD,MAAa,cAAe,SAAQ,mCAAe;IAAnD;;QAEI,aAAQ,GAAG,qBAAqB,CAAC;IAmBrC,CAAC;IAjBa,KAAK,CAAC,sBAAsB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAiC,sBAAiD;QACnG,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,SAAS;QACX,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,OAAO,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;IAChD,CAAC;CAEJ;AArBD,wCAqBC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
3
|
+
export declare class TheiaStatusIndicator extends TheiaPageObject {
|
|
4
|
+
protected elementSpanSelector: string;
|
|
5
|
+
protected getElementHandle(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
6
|
+
waitForVisible(): Promise<void>;
|
|
7
|
+
protected getSelectorByTitle(title: string): string;
|
|
8
|
+
getElementHandleByTitle(title: string): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
9
|
+
protected getSelectorByIcon(icon: string): string;
|
|
10
|
+
getElementHandleByIcon(iconClass: string | string[], titleContain?: string): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
11
|
+
waitForVisibleByTitle(title: string, waitForDetached?: boolean): Promise<void>;
|
|
12
|
+
waitForVisibleByIcon(icon: string, waitForDetached?: boolean): Promise<void>;
|
|
13
|
+
isVisible(icon: string | string[], titleContain?: string): Promise<boolean>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=theia-status-indicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-status-indicator.d.ts","sourceRoot":"","sources":["../src/theia-status-indicator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,oBAAqB,SAAQ,eAAe;IAErD,SAAS,CAAC,mBAAmB,SAAoC;cAEjD,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAIrF,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI7C,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAKrG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3C,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,YAAY,SAAK,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAiBhI,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,YAAY,SAAK,GAAG,OAAO,CAAC,OAAO,CAAC;CAShF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaStatusIndicator = void 0;
|
|
19
|
+
const theia_page_object_1 = require("./theia-page-object");
|
|
20
|
+
class TheiaStatusIndicator extends theia_page_object_1.TheiaPageObject {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.elementSpanSelector = '#theia-statusBar .element span';
|
|
24
|
+
}
|
|
25
|
+
async getElementHandle() {
|
|
26
|
+
return this.page.$(this.elementSpanSelector);
|
|
27
|
+
}
|
|
28
|
+
async waitForVisible() {
|
|
29
|
+
await this.page.waitForSelector(this.elementSpanSelector);
|
|
30
|
+
}
|
|
31
|
+
getSelectorByTitle(title) {
|
|
32
|
+
return `.element[title="${title}"]`;
|
|
33
|
+
}
|
|
34
|
+
async getElementHandleByTitle(title) {
|
|
35
|
+
// Fetch element via title in case status elements exist without a dedicated Codicon icon
|
|
36
|
+
return this.page.$(this.getSelectorByTitle(title));
|
|
37
|
+
}
|
|
38
|
+
getSelectorByIcon(icon) {
|
|
39
|
+
return `${this.elementSpanSelector}.codicon.${icon}`;
|
|
40
|
+
}
|
|
41
|
+
async getElementHandleByIcon(iconClass, titleContain = '') {
|
|
42
|
+
const icons = Array.isArray(iconClass) ? iconClass : [iconClass];
|
|
43
|
+
for (const icon of icons) {
|
|
44
|
+
const span = await this.page.$(this.getSelectorByIcon(icon));
|
|
45
|
+
if (span) {
|
|
46
|
+
const parent = await span.$('..');
|
|
47
|
+
if (titleContain === '') {
|
|
48
|
+
return parent;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const parentTitle = await (parent === null || parent === void 0 ? void 0 : parent.getAttribute('title'));
|
|
52
|
+
if (parentTitle === null || parentTitle === void 0 ? void 0 : parentTitle.includes(titleContain)) {
|
|
53
|
+
return parent;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
throw new Error('Cannot find indicator');
|
|
59
|
+
}
|
|
60
|
+
async waitForVisibleByTitle(title, waitForDetached = false) {
|
|
61
|
+
await this.page.waitForSelector(this.getSelectorByTitle(title), waitForDetached ? { state: 'detached' } : {});
|
|
62
|
+
}
|
|
63
|
+
async waitForVisibleByIcon(icon, waitForDetached = false) {
|
|
64
|
+
await this.page.waitForSelector(this.getSelectorByIcon(icon), waitForDetached ? { state: 'detached' } : {});
|
|
65
|
+
}
|
|
66
|
+
async isVisible(icon, titleContain = '') {
|
|
67
|
+
try {
|
|
68
|
+
const element = await this.getElementHandleByIcon(icon, titleContain);
|
|
69
|
+
return !!element && element.isVisible();
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.TheiaStatusIndicator = TheiaStatusIndicator;
|
|
77
|
+
//# sourceMappingURL=theia-status-indicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-status-indicator.js","sourceRoot":"","sources":["../src/theia-status-indicator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaApp } from './theia-app';
|
|
3
|
+
import { TheiaEditor } from './theia-editor';
|
|
4
|
+
export declare class TheiaTextEditor extends TheiaEditor {
|
|
5
|
+
constructor(filePath: string, app: TheiaApp);
|
|
6
|
+
numberOfLines(): Promise<number | undefined>;
|
|
7
|
+
textContentOfLineByLineNumber(lineNumber: number): Promise<string | undefined>;
|
|
8
|
+
replaceLineWithLineNumber(text: string, lineNumber: number): Promise<void>;
|
|
9
|
+
protected typeTextAndHitEnter(text: string): Promise<void>;
|
|
10
|
+
selectLineWithLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
11
|
+
placeCursorInLineWithLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
12
|
+
deleteLineByLineNumber(lineNumber: number): Promise<void>;
|
|
13
|
+
protected lineByLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
14
|
+
textContentOfLineContainingText(text: string): Promise<string | undefined>;
|
|
15
|
+
replaceLineContainingText(newText: string, oldText: string): Promise<void>;
|
|
16
|
+
selectLineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
17
|
+
placeCursorInLineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
18
|
+
deleteLineContainingText(text: string): Promise<void>;
|
|
19
|
+
addTextToNewLineAfterLineContainingText(textContainedByExistingLine: string, newText: string): Promise<void>;
|
|
20
|
+
addTextToNewLineAfterLineByLineNumber(lineNumber: number, newText: string): Promise<void>;
|
|
21
|
+
protected lineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
22
|
+
protected selectLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<void>;
|
|
23
|
+
protected placeCursorInLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<void>;
|
|
24
|
+
protected replaceEditorSymbolsWithSpace(content: string): string | Promise<string | undefined>;
|
|
25
|
+
protected selectedSuggestion(): Promise<ElementHandle<SVGElement | HTMLElement>>;
|
|
26
|
+
getSelectedSuggestionText(): Promise<string>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=theia-text-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-text-editor.d.ts","sourceRoot":"","sources":["../src/theia-text-editor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,qBAAa,eAAgB,SAAQ,WAAW;gBAEhC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ;IASrC,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAO5C,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAM9E,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAKhE,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAO1G,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAOjH,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAK/C,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAiB5G,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAO1E,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1E,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAOpG,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAO3G,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD,uCAAuC,CAAC,2BAA2B,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5G,qCAAqC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAQ/E,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;cAK9F,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;cAI3F,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlH,SAAS,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAM9E,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;IAIhF,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC;CAOrD"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaTextEditor = void 0;
|
|
19
|
+
const path_1 = require("path");
|
|
20
|
+
const theia_editor_1 = require("./theia-editor");
|
|
21
|
+
const util_1 = require("./util");
|
|
22
|
+
class TheiaTextEditor extends theia_editor_1.TheiaEditor {
|
|
23
|
+
constructor(filePath, app) {
|
|
24
|
+
// shell-tab-code-editor-opener:file:///c%3A/Users/user/AppData/Local/Temp/cloud-ws-JBUhb6/sample.txt:1
|
|
25
|
+
// code-editor-opener:file:///c%3A/Users/user/AppData/Local/Temp/cloud-ws-JBUhb6/sample.txt:1
|
|
26
|
+
super({
|
|
27
|
+
tabSelector: (0, util_1.normalizeId)(`#shell-tab-code-editor-opener:file://${(0, util_1.urlEncodePath)((0, path_1.join)(app.workspace.escapedPath, util_1.OSUtil.fileSeparator, filePath))}:1`),
|
|
28
|
+
viewSelector: (0, util_1.normalizeId)(`#code-editor-opener:file://${(0, util_1.urlEncodePath)((0, path_1.join)(app.workspace.escapedPath, util_1.OSUtil.fileSeparator, filePath))}:1`) + '.theia-editor'
|
|
29
|
+
}, app);
|
|
30
|
+
}
|
|
31
|
+
async numberOfLines() {
|
|
32
|
+
await this.activate();
|
|
33
|
+
const viewElement = await this.viewElement();
|
|
34
|
+
const lineElements = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.$$('.view-lines .view-line'));
|
|
35
|
+
return lineElements === null || lineElements === void 0 ? void 0 : lineElements.length;
|
|
36
|
+
}
|
|
37
|
+
async textContentOfLineByLineNumber(lineNumber) {
|
|
38
|
+
const lineElement = await this.lineByLineNumber(lineNumber);
|
|
39
|
+
const content = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.textContent());
|
|
40
|
+
return content ? this.replaceEditorSymbolsWithSpace(content) : undefined;
|
|
41
|
+
}
|
|
42
|
+
async replaceLineWithLineNumber(text, lineNumber) {
|
|
43
|
+
await this.selectLineWithLineNumber(lineNumber);
|
|
44
|
+
await this.typeTextAndHitEnter(text);
|
|
45
|
+
}
|
|
46
|
+
async typeTextAndHitEnter(text) {
|
|
47
|
+
await this.page.keyboard.type(text);
|
|
48
|
+
await this.page.keyboard.press('Enter');
|
|
49
|
+
}
|
|
50
|
+
async selectLineWithLineNumber(lineNumber) {
|
|
51
|
+
await this.activate();
|
|
52
|
+
const lineElement = await this.lineByLineNumber(lineNumber);
|
|
53
|
+
await this.selectLine(lineElement);
|
|
54
|
+
return lineElement;
|
|
55
|
+
}
|
|
56
|
+
async placeCursorInLineWithLineNumber(lineNumber) {
|
|
57
|
+
await this.activate();
|
|
58
|
+
const lineElement = await this.lineByLineNumber(lineNumber);
|
|
59
|
+
await this.placeCursorInLine(lineElement);
|
|
60
|
+
return lineElement;
|
|
61
|
+
}
|
|
62
|
+
async deleteLineByLineNumber(lineNumber) {
|
|
63
|
+
await this.selectLineWithLineNumber(lineNumber);
|
|
64
|
+
await this.page.keyboard.press('Backspace');
|
|
65
|
+
}
|
|
66
|
+
async lineByLineNumber(lineNumber) {
|
|
67
|
+
await this.activate();
|
|
68
|
+
const viewElement = await this.viewElement();
|
|
69
|
+
const lines = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.$$('.view-lines .view-line'));
|
|
70
|
+
if (!lines) {
|
|
71
|
+
throw new Error(`Couldn't retrieve lines of text editor ${this.tabSelector}`);
|
|
72
|
+
}
|
|
73
|
+
const linesWithXCoordinates = [];
|
|
74
|
+
for (const lineElement of lines) {
|
|
75
|
+
const box = await lineElement.boundingBox();
|
|
76
|
+
linesWithXCoordinates.push({ x: box ? box.x : Number.MAX_VALUE, lineElement });
|
|
77
|
+
}
|
|
78
|
+
linesWithXCoordinates.sort((a, b) => a.x.toString().localeCompare(b.x.toString()));
|
|
79
|
+
return linesWithXCoordinates[lineNumber - 1].lineElement;
|
|
80
|
+
}
|
|
81
|
+
async textContentOfLineContainingText(text) {
|
|
82
|
+
await this.activate();
|
|
83
|
+
const lineElement = await this.lineContainingText(text);
|
|
84
|
+
const content = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.textContent());
|
|
85
|
+
return content ? this.replaceEditorSymbolsWithSpace(content) : undefined;
|
|
86
|
+
}
|
|
87
|
+
async replaceLineContainingText(newText, oldText) {
|
|
88
|
+
await this.selectLineContainingText(oldText);
|
|
89
|
+
await this.typeTextAndHitEnter(newText);
|
|
90
|
+
}
|
|
91
|
+
async selectLineContainingText(text) {
|
|
92
|
+
await this.activate();
|
|
93
|
+
const lineElement = await this.lineContainingText(text);
|
|
94
|
+
await this.selectLine(lineElement);
|
|
95
|
+
return lineElement;
|
|
96
|
+
}
|
|
97
|
+
async placeCursorInLineContainingText(text) {
|
|
98
|
+
await this.activate();
|
|
99
|
+
const lineElement = await this.lineContainingText(text);
|
|
100
|
+
await this.placeCursorInLine(lineElement);
|
|
101
|
+
return lineElement;
|
|
102
|
+
}
|
|
103
|
+
async deleteLineContainingText(text) {
|
|
104
|
+
await this.selectLineContainingText(text);
|
|
105
|
+
await this.page.keyboard.press('Backspace');
|
|
106
|
+
}
|
|
107
|
+
async addTextToNewLineAfterLineContainingText(textContainedByExistingLine, newText) {
|
|
108
|
+
const existingLine = await this.lineContainingText(textContainedByExistingLine);
|
|
109
|
+
await this.placeCursorInLine(existingLine);
|
|
110
|
+
await this.page.keyboard.press('End');
|
|
111
|
+
await this.page.keyboard.press('Enter');
|
|
112
|
+
await this.page.keyboard.type(newText);
|
|
113
|
+
}
|
|
114
|
+
async addTextToNewLineAfterLineByLineNumber(lineNumber, newText) {
|
|
115
|
+
const existingLine = await this.lineByLineNumber(lineNumber);
|
|
116
|
+
await this.placeCursorInLine(existingLine);
|
|
117
|
+
await this.page.keyboard.press('End');
|
|
118
|
+
await this.page.keyboard.press('Enter');
|
|
119
|
+
await this.page.keyboard.type(newText);
|
|
120
|
+
}
|
|
121
|
+
async lineContainingText(text) {
|
|
122
|
+
const viewElement = await this.viewElement();
|
|
123
|
+
return viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(`.view-lines .view-line:has-text("${text}")`);
|
|
124
|
+
}
|
|
125
|
+
async selectLine(lineElement) {
|
|
126
|
+
await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.click({ clickCount: 3 }));
|
|
127
|
+
}
|
|
128
|
+
async placeCursorInLine(lineElement) {
|
|
129
|
+
await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.click());
|
|
130
|
+
}
|
|
131
|
+
replaceEditorSymbolsWithSpace(content) {
|
|
132
|
+
// [ ] => \u00a0
|
|
133
|
+
// [·] · => \u00b7
|
|
134
|
+
return content.replace(/[\u00a0\u00b7]/g, ' ');
|
|
135
|
+
}
|
|
136
|
+
async selectedSuggestion() {
|
|
137
|
+
return this.page.waitForSelector(this.viewSelector + ' .monaco-list-row.show-file-icons.focused');
|
|
138
|
+
}
|
|
139
|
+
async getSelectedSuggestionText() {
|
|
140
|
+
const suggestion = await this.selectedSuggestion();
|
|
141
|
+
const text = await suggestion.textContent();
|
|
142
|
+
if (text === null) {
|
|
143
|
+
throw new Error('Text content could not be found');
|
|
144
|
+
}
|
|
145
|
+
return text;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.TheiaTextEditor = TheiaTextEditor;
|
|
149
|
+
//# sourceMappingURL=theia-text-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-text-editor.js","sourceRoot":"","sources":["../src/theia-text-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-toggle-bottom-indicator.d.ts","sourceRoot":"","sources":["../src/theia-toggle-bottom-indicator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIhE,qBAAa,0BAA2B,SAAQ,oBAAoB;IACjD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;CAG/C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaToggleBottomIndicator = void 0;
|
|
19
|
+
const theia_status_indicator_1 = require("./theia-status-indicator");
|
|
20
|
+
const TOGGLE_BOTTOM_ICON = 'codicon-window';
|
|
21
|
+
class TheiaToggleBottomIndicator extends theia_status_indicator_1.TheiaStatusIndicator {
|
|
22
|
+
async isVisible() {
|
|
23
|
+
return super.isVisible(TOGGLE_BOTTOM_ICON);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.TheiaToggleBottomIndicator = TheiaToggleBottomIndicator;
|
|
27
|
+
//# sourceMappingURL=theia-toggle-bottom-indicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-toggle-bottom-indicator.js","sourceRoot":"","sources":["../src/theia-toggle-bottom-indicator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAEhF,qEAAgE;AAEhE,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAE5C,MAAa,0BAA2B,SAAQ,6CAAoB;IACvD,KAAK,CAAC,SAAS;QACpB,OAAO,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAC/C,CAAC;CACJ;AAJD,gEAIC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaApp } from './theia-app';
|
|
3
|
+
import { TheiaMenu } from './theia-menu';
|
|
4
|
+
export declare class TheiaTreeNode {
|
|
5
|
+
protected elementHandle: ElementHandle<SVGElement | HTMLElement>;
|
|
6
|
+
protected app: TheiaApp;
|
|
7
|
+
labelElementCssClass: string;
|
|
8
|
+
expansionToggleCssClass: string;
|
|
9
|
+
collapsedCssClass: string;
|
|
10
|
+
constructor(elementHandle: ElementHandle<SVGElement | HTMLElement>, app: TheiaApp);
|
|
11
|
+
label(): Promise<string | null>;
|
|
12
|
+
isCollapsed(): Promise<boolean>;
|
|
13
|
+
isExpandable(): Promise<boolean>;
|
|
14
|
+
expand(): Promise<void>;
|
|
15
|
+
openContextMenu(): Promise<TheiaMenu>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=theia-tree-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-tree-node.d.ts","sourceRoot":"","sources":["../src/theia-tree-node.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,aAAa;IAMV,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC;IAAE,SAAS,CAAC,GAAG,EAAE,QAAQ;IAJrG,oBAAoB,SAAgC;IACpD,uBAAuB,SAA4B;IACnD,iBAAiB,SAA0B;gBAErB,aAAa,EAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,EAAY,GAAG,EAAE,QAAQ;IAE/F,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ/B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IASvB,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC;CAI9C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaTreeNode = void 0;
|
|
19
|
+
const theia_context_menu_1 = require("./theia-context-menu");
|
|
20
|
+
class TheiaTreeNode {
|
|
21
|
+
constructor(elementHandle, app) {
|
|
22
|
+
this.elementHandle = elementHandle;
|
|
23
|
+
this.app = app;
|
|
24
|
+
this.labelElementCssClass = '.theia-TreeNodeSegmentGrow';
|
|
25
|
+
this.expansionToggleCssClass = '.theia-ExpansionToggle';
|
|
26
|
+
this.collapsedCssClass = '.theia-mod-collapsed';
|
|
27
|
+
}
|
|
28
|
+
async label() {
|
|
29
|
+
const labelNode = await this.elementHandle.$(this.labelElementCssClass);
|
|
30
|
+
if (!labelNode) {
|
|
31
|
+
throw new Error('Cannot read label of ' + this.elementHandle);
|
|
32
|
+
}
|
|
33
|
+
return labelNode.textContent();
|
|
34
|
+
}
|
|
35
|
+
async isCollapsed() {
|
|
36
|
+
return !!await this.elementHandle.$(this.collapsedCssClass);
|
|
37
|
+
}
|
|
38
|
+
async isExpandable() {
|
|
39
|
+
return !!await this.elementHandle.$(this.expansionToggleCssClass);
|
|
40
|
+
}
|
|
41
|
+
async expand() {
|
|
42
|
+
if (!await this.isCollapsed()) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const expansionToggle = await this.elementHandle.waitForSelector(this.expansionToggleCssClass);
|
|
46
|
+
await expansionToggle.click();
|
|
47
|
+
await this.elementHandle.waitForSelector(`${this.expansionToggleCssClass}:not(${this.collapsedCssClass})`);
|
|
48
|
+
}
|
|
49
|
+
async openContextMenu() {
|
|
50
|
+
return theia_context_menu_1.TheiaContextMenu.open(this.app, () => this.elementHandle.waitForSelector(this.labelElementCssClass));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.TheiaTreeNode = TheiaTreeNode;
|
|
54
|
+
//# sourceMappingURL=theia-tree-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-tree-node.js","sourceRoot":"","sources":["../src/theia-tree-node.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAKhF,6DAAwD;AAGxD,MAAa,aAAa;IAMtB,YAAsB,aAAsD,EAAY,GAAa;QAA/E,kBAAa,GAAb,aAAa,CAAyC;QAAY,QAAG,GAAH,GAAG,CAAU;QAJrG,yBAAoB,GAAG,4BAA4B,CAAC;QACpD,4BAAuB,GAAG,wBAAwB,CAAC;QACnD,sBAAiB,GAAG,sBAAsB,CAAC;IAE8D,CAAC;IAE1G,KAAK,CAAC,KAAK;QACP,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;SACjE;QACD,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW;QACb,OAAO,CAAC,CAAE,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,YAAY;QACd,OAAO,CAAC,CAAE,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,MAAM;QACR,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE;YAC5B,OAAO;SACV;QACD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC/F,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,uBAAuB,QAAQ,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;IAC/G,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,OAAO,qCAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAChH,CAAC;CAEJ;AArCD,sCAqCC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaApp } from './theia-app';
|
|
3
|
+
import { TheiaMenu } from './theia-menu';
|
|
4
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
5
|
+
export interface TheiaViewData {
|
|
6
|
+
tabSelector: string;
|
|
7
|
+
viewSelector: string;
|
|
8
|
+
viewName?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class TheiaView extends TheiaPageObject {
|
|
11
|
+
protected readonly data: TheiaViewData;
|
|
12
|
+
constructor(data: TheiaViewData, app: TheiaApp);
|
|
13
|
+
get tabSelector(): string;
|
|
14
|
+
get viewSelector(): string;
|
|
15
|
+
get name(): string | undefined;
|
|
16
|
+
open(): Promise<TheiaView>;
|
|
17
|
+
focus(): Promise<void>;
|
|
18
|
+
activate(): Promise<void>;
|
|
19
|
+
waitForVisible(): Promise<void>;
|
|
20
|
+
isTabVisible(): Promise<boolean>;
|
|
21
|
+
isDisplayed(): Promise<boolean>;
|
|
22
|
+
isActive(): Promise<boolean>;
|
|
23
|
+
isClosable(): Promise<boolean>;
|
|
24
|
+
close(waitForClosed?: boolean): Promise<void>;
|
|
25
|
+
protected waitUntilClosed(): Promise<void>;
|
|
26
|
+
title(): Promise<string | undefined>;
|
|
27
|
+
isInSidePanel(): Promise<boolean>;
|
|
28
|
+
side(): Promise<'left' | 'right' | 'bottom' | 'main'>;
|
|
29
|
+
openContextMenuOnTab(): Promise<TheiaMenu>;
|
|
30
|
+
protected viewElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
31
|
+
protected tabElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=theia-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theia-view.d.ts","sourceRoot":"","sources":["../src/theia-view.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,SAAU,SAAQ,eAAe;IAE9B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa;gBAAnB,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ;IAIjE,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAEK,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAU1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IASzB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,KAAK,CAAC,aAAa,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;cAsBhC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAkBpC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAuBrD,oBAAoB,IAAI,OAAO,CAAC,SAAS,CAAC;IAKhD,SAAS,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAIhF,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;CAIlF"}
|