@theia/playwright 1.45.0 → 1.46.0-next.72
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/README.md +54 -54
- package/lib/index.d.ts +30 -30
- package/lib/index.js +57 -57
- 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 +1 -1
- package/lib/tests/theia-app.test.js +29 -29
- package/lib/tests/theia-application-shell.test.d.ts +2 -0
- package/lib/tests/theia-application-shell.test.d.ts.map +1 -0
- package/lib/tests/theia-application-shell.test.js +58 -0
- package/lib/tests/theia-application-shell.test.js.map +1 -0
- package/lib/tests/theia-explorer-view.test.d.ts +1 -1
- package/lib/tests/theia-explorer-view.test.js +183 -183
- package/lib/tests/theia-main-menu.test.d.ts +1 -1
- package/lib/tests/theia-main-menu.test.js +92 -92
- package/lib/tests/theia-output-view.test.d.ts +1 -1
- package/lib/tests/theia-output-view.test.js +78 -78
- package/lib/tests/theia-preference-view.test.d.ts +1 -1
- package/lib/tests/theia-preference-view.test.js +101 -101
- package/lib/tests/theia-problems-view.test.d.ts +1 -1
- package/lib/tests/theia-problems-view.test.js +54 -54
- package/lib/tests/theia-quick-command.test.d.ts +1 -1
- package/lib/tests/theia-quick-command.test.js +69 -69
- package/lib/tests/theia-sample-app.test.d.ts +1 -1
- package/lib/tests/theia-sample-app.test.js +57 -57
- package/lib/tests/theia-status-bar.test.d.ts +1 -1
- package/lib/tests/theia-status-bar.test.js +44 -44
- package/lib/tests/theia-terminal-view.test.d.ts +1 -1
- package/lib/tests/theia-terminal-view.test.js +78 -78
- package/lib/tests/theia-text-editor.test.d.ts +1 -1
- package/lib/tests/theia-text-editor.test.js +155 -155
- package/lib/tests/theia-toolbar.test.d.ts +1 -1
- package/lib/tests/theia-toolbar.test.js +61 -61
- package/lib/tests/theia-workspace.test.d.ts +1 -1
- package/lib/tests/theia-workspace.test.js +72 -72
- package/lib/theia-about-dialog.d.ts +4 -4
- package/lib/theia-about-dialog.js +26 -26
- package/lib/theia-app-loader.d.ts +19 -19
- package/lib/theia-app-loader.js +129 -129
- package/lib/theia-app.d.ts +50 -50
- package/lib/theia-app.js +153 -153
- package/lib/theia-context-menu.d.ts +8 -8
- package/lib/theia-context-menu.js +37 -37
- package/lib/theia-dialog.d.ts +28 -28
- package/lib/theia-dialog.js +99 -99
- package/lib/theia-editor.d.ts +9 -9
- package/lib/theia-editor.js +68 -68
- package/lib/theia-explorer-view.d.ts +47 -47
- package/lib/theia-explorer-view.js +273 -273
- package/lib/theia-main-menu.d.ts +12 -12
- package/lib/theia-main-menu.js +53 -53
- package/lib/theia-menu-item.d.ts +14 -14
- package/lib/theia-menu-item.js +66 -66
- package/lib/theia-menu.d.ts +16 -16
- package/lib/theia-menu.js +86 -86
- package/lib/theia-monaco-editor.d.ts +15 -15
- package/lib/theia-monaco-editor.js +75 -75
- package/lib/theia-notification-indicator.d.ts +7 -7
- package/lib/theia-notification-indicator.js +44 -44
- package/lib/theia-notification-overlay.d.ts +22 -22
- package/lib/theia-notification-overlay.js +79 -79
- package/lib/theia-output-channel.d.ts +24 -24
- package/lib/theia-output-channel.js +71 -71
- package/lib/theia-output-view.d.ts +9 -9
- package/lib/theia-output-view.js +81 -81
- package/lib/theia-page-object.d.ts +7 -7
- package/lib/theia-page-object.js +27 -27
- package/lib/theia-preference-view.d.ts +84 -84
- package/lib/theia-preference-view.js +209 -209
- package/lib/theia-problem-indicator.d.ts +8 -8
- package/lib/theia-problem-indicator.js +38 -38
- package/lib/theia-problem-view.d.ts +5 -5
- package/lib/theia-problem-view.js +30 -30
- package/lib/theia-quick-command-palette.d.ts +12 -12
- package/lib/theia-quick-command-palette.js +80 -80
- package/lib/theia-rename-dialog.d.ts +5 -5
- package/lib/theia-rename-dialog.js +35 -35
- package/lib/theia-status-bar.d.ts +13 -13
- package/lib/theia-status-bar.js +39 -39
- package/lib/theia-status-indicator.d.ts +10 -10
- package/lib/theia-status-indicator.js +48 -48
- package/lib/theia-terminal.d.ts +13 -13
- package/lib/theia-terminal.js +59 -59
- package/lib/theia-text-editor.d.ts +26 -26
- package/lib/theia-text-editor.js +120 -120
- package/lib/theia-toggle-bottom-indicator.d.ts +4 -4
- package/lib/theia-toggle-bottom-indicator.js +26 -26
- package/lib/theia-toolbar-item.d.ts +10 -10
- package/lib/theia-toolbar-item.js +39 -39
- package/lib/theia-toolbar.d.ts +19 -19
- package/lib/theia-toolbar.js +90 -90
- package/lib/theia-tree-node.d.ts +19 -19
- package/lib/theia-tree-node.js +72 -72
- package/lib/theia-view.d.ts +32 -32
- package/lib/theia-view.js +149 -149
- package/lib/theia-welcome-view.d.ts +6 -0
- package/lib/theia-welcome-view.d.ts.map +1 -0
- package/lib/theia-welcome-view.js +31 -0
- package/lib/theia-welcome-view.js.map +1 -0
- package/lib/theia-workspace.d.ts +18 -18
- package/lib/theia-workspace.js +69 -69
- package/lib/util.d.ts +19 -19
- package/lib/util.js +93 -93
- package/package.json +2 -2
- package/src/index.ts +46 -46
- package/src/tests/resources/sample-files1/sample.txt +4 -4
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-1/sampleFile1-1-1.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-1/sampleFile1-1-2.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-2/sampleFile1-2-1.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-2/sampleFile1-2-2.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-1/sampleFile2-1-1.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-1/sampleFile2-1-2.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-2/sampleFile2-2-1.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-2/sampleFile2-2-2.txt +1 -1
- package/src/tests/resources/sample-files2/another-sample.txt +1 -1
- package/src/tests/theia-app.test.ts +33 -33
- package/src/tests/theia-application-shell.test.ts +67 -0
- package/src/tests/theia-explorer-view.test.ts +211 -211
- package/src/tests/theia-main-menu.test.ts +112 -112
- package/src/tests/theia-output-view.test.ts +85 -85
- package/src/tests/theia-preference-view.test.ts +122 -122
- package/src/tests/theia-problems-view.test.ts +64 -64
- package/src/tests/theia-quick-command.test.ts +80 -80
- package/src/tests/theia-sample-app.test.ts +66 -66
- package/src/tests/theia-status-bar.test.ts +52 -52
- package/src/tests/theia-terminal-view.test.ts +90 -90
- package/src/tests/theia-text-editor.test.ts +187 -187
- package/src/tests/theia-toolbar.test.ts +69 -69
- package/src/tests/theia-workspace.test.ts +80 -80
- package/src/theia-about-dialog.ts +26 -26
- package/src/theia-app-loader.ts +167 -167
- package/src/theia-app.ts +188 -188
- package/src/theia-context-menu.ts +42 -42
- package/src/theia-dialog.ts +114 -114
- package/src/theia-editor.ts +73 -73
- package/src/theia-explorer-view.ts +311 -311
- package/src/theia-main-menu.ts +54 -54
- package/src/theia-menu-item.ts +75 -75
- package/src/theia-menu.ts +96 -96
- package/src/theia-monaco-editor.ts +83 -83
- package/src/theia-notification-indicator.ts +44 -44
- package/src/theia-notification-overlay.ts +94 -94
- package/src/theia-output-channel.ts +88 -88
- package/src/theia-output-view.ts +87 -87
- package/src/theia-page-object.ts +29 -29
- package/src/theia-preference-view.ts +240 -240
- package/src/theia-problem-indicator.ts +37 -37
- package/src/theia-problem-view.ts +30 -30
- package/src/theia-quick-command-palette.ts +83 -83
- package/src/theia-rename-dialog.ts +36 -36
- package/src/theia-status-bar.ts +44 -44
- package/src/theia-status-indicator.ts +50 -50
- package/src/theia-terminal.ts +69 -69
- package/src/theia-text-editor.ts +141 -141
- package/src/theia-toggle-bottom-indicator.ts +21 -21
- package/src/theia-toolbar-item.ts +41 -41
- package/src/theia-toolbar.ts +99 -99
- package/src/theia-tree-node.ts +81 -81
- package/src/theia-view.ts +177 -177
- package/src/theia-welcome-view.ts +31 -0
- package/src/theia-workspace.ts +76 -76
- package/src/util.ts +91 -91
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2023 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-only WITH Classpath-exception-2.0
|
|
16
|
-
// *****************************************************************************
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.TheiaMonacoEditor = void 0;
|
|
19
|
-
const theia_page_object_1 = require("./theia-page-object");
|
|
20
|
-
class TheiaMonacoEditor extends theia_page_object_1.TheiaPageObject {
|
|
21
|
-
constructor(selector, app) {
|
|
22
|
-
super(app);
|
|
23
|
-
this.selector = selector;
|
|
24
|
-
}
|
|
25
|
-
async waitForVisible() {
|
|
26
|
-
await this.page.waitForSelector(this.selector, { state: 'visible' });
|
|
27
|
-
}
|
|
28
|
-
viewElement() {
|
|
29
|
-
return this.page.$(this.selector);
|
|
30
|
-
}
|
|
31
|
-
async numberOfLines() {
|
|
32
|
-
await this.waitForVisible();
|
|
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
|
-
await this.waitForVisible();
|
|
39
|
-
const lineElement = await this.lineByLineNumber(lineNumber);
|
|
40
|
-
const content = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.textContent());
|
|
41
|
-
return content ? this.replaceEditorSymbolsWithSpace(content) : undefined;
|
|
42
|
-
}
|
|
43
|
-
async lineByLineNumber(lineNumber) {
|
|
44
|
-
await this.waitForVisible();
|
|
45
|
-
const viewElement = await this.viewElement();
|
|
46
|
-
const lines = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.$$('.view-lines > .view-line'));
|
|
47
|
-
if (!lines) {
|
|
48
|
-
throw new Error('Couldn\'t retrieve lines of monaco editor');
|
|
49
|
-
}
|
|
50
|
-
const linesWithXCoordinates = [];
|
|
51
|
-
for (const lineElement of lines) {
|
|
52
|
-
const box = await lineElement.boundingBox();
|
|
53
|
-
linesWithXCoordinates.push({ x: box ? box.x : Number.MAX_VALUE, lineElement });
|
|
54
|
-
}
|
|
55
|
-
linesWithXCoordinates.sort((a, b) => a.x.toString().localeCompare(b.x.toString()));
|
|
56
|
-
return linesWithXCoordinates[lineNumber - 1].lineElement;
|
|
57
|
-
}
|
|
58
|
-
async textContentOfLineContainingText(text) {
|
|
59
|
-
await this.waitForVisible();
|
|
60
|
-
const lineElement = await this.lineContainingText(text);
|
|
61
|
-
const content = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.textContent());
|
|
62
|
-
return content ? this.replaceEditorSymbolsWithSpace(content) : undefined;
|
|
63
|
-
}
|
|
64
|
-
async lineContainingText(text) {
|
|
65
|
-
const viewElement = await this.viewElement();
|
|
66
|
-
return viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(`.view-lines .view-line:has-text("${text}")`);
|
|
67
|
-
}
|
|
68
|
-
replaceEditorSymbolsWithSpace(content) {
|
|
69
|
-
// [ ] => \u00a0 -- NO-BREAK SPACE
|
|
70
|
-
// [·] · => \u00b7 -- MIDDLE DOT
|
|
71
|
-
// [] ‌ => \u200c -- ZERO WIDTH NON-JOINER
|
|
72
|
-
return content.replace(/[\u00a0\u00b7]/g, ' ').replace(/[\u200c]/g, '');
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.TheiaMonacoEditor = TheiaMonacoEditor;
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2023 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-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaMonacoEditor = void 0;
|
|
19
|
+
const theia_page_object_1 = require("./theia-page-object");
|
|
20
|
+
class TheiaMonacoEditor extends theia_page_object_1.TheiaPageObject {
|
|
21
|
+
constructor(selector, app) {
|
|
22
|
+
super(app);
|
|
23
|
+
this.selector = selector;
|
|
24
|
+
}
|
|
25
|
+
async waitForVisible() {
|
|
26
|
+
await this.page.waitForSelector(this.selector, { state: 'visible' });
|
|
27
|
+
}
|
|
28
|
+
viewElement() {
|
|
29
|
+
return this.page.$(this.selector);
|
|
30
|
+
}
|
|
31
|
+
async numberOfLines() {
|
|
32
|
+
await this.waitForVisible();
|
|
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
|
+
await this.waitForVisible();
|
|
39
|
+
const lineElement = await this.lineByLineNumber(lineNumber);
|
|
40
|
+
const content = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.textContent());
|
|
41
|
+
return content ? this.replaceEditorSymbolsWithSpace(content) : undefined;
|
|
42
|
+
}
|
|
43
|
+
async lineByLineNumber(lineNumber) {
|
|
44
|
+
await this.waitForVisible();
|
|
45
|
+
const viewElement = await this.viewElement();
|
|
46
|
+
const lines = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.$$('.view-lines > .view-line'));
|
|
47
|
+
if (!lines) {
|
|
48
|
+
throw new Error('Couldn\'t retrieve lines of monaco editor');
|
|
49
|
+
}
|
|
50
|
+
const linesWithXCoordinates = [];
|
|
51
|
+
for (const lineElement of lines) {
|
|
52
|
+
const box = await lineElement.boundingBox();
|
|
53
|
+
linesWithXCoordinates.push({ x: box ? box.x : Number.MAX_VALUE, lineElement });
|
|
54
|
+
}
|
|
55
|
+
linesWithXCoordinates.sort((a, b) => a.x.toString().localeCompare(b.x.toString()));
|
|
56
|
+
return linesWithXCoordinates[lineNumber - 1].lineElement;
|
|
57
|
+
}
|
|
58
|
+
async textContentOfLineContainingText(text) {
|
|
59
|
+
await this.waitForVisible();
|
|
60
|
+
const lineElement = await this.lineContainingText(text);
|
|
61
|
+
const content = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.textContent());
|
|
62
|
+
return content ? this.replaceEditorSymbolsWithSpace(content) : undefined;
|
|
63
|
+
}
|
|
64
|
+
async lineContainingText(text) {
|
|
65
|
+
const viewElement = await this.viewElement();
|
|
66
|
+
return viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(`.view-lines .view-line:has-text("${text}")`);
|
|
67
|
+
}
|
|
68
|
+
replaceEditorSymbolsWithSpace(content) {
|
|
69
|
+
// [ ] => \u00a0 -- NO-BREAK SPACE
|
|
70
|
+
// [·] · => \u00b7 -- MIDDLE DOT
|
|
71
|
+
// [] ‌ => \u200c -- ZERO WIDTH NON-JOINER
|
|
72
|
+
return content.replace(/[\u00a0\u00b7]/g, ' ').replace(/[\u200c]/g, '');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.TheiaMonacoEditor = TheiaMonacoEditor;
|
|
76
76
|
//# sourceMappingURL=theia-monaco-editor.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { TheiaStatusIndicator } from './theia-status-indicator';
|
|
2
|
-
export declare class TheiaNotificationIndicator extends TheiaStatusIndicator {
|
|
3
|
-
id: string;
|
|
4
|
-
hasNotifications(): Promise<boolean>;
|
|
5
|
-
waitForVisible(expectNotifications?: boolean): Promise<void>;
|
|
6
|
-
toggleOverlay(): Promise<void>;
|
|
7
|
-
}
|
|
1
|
+
import { TheiaStatusIndicator } from './theia-status-indicator';
|
|
2
|
+
export declare class TheiaNotificationIndicator extends TheiaStatusIndicator {
|
|
3
|
+
id: string;
|
|
4
|
+
hasNotifications(): Promise<boolean>;
|
|
5
|
+
waitForVisible(expectNotifications?: boolean): Promise<void>;
|
|
6
|
+
toggleOverlay(): Promise<void>;
|
|
7
|
+
}
|
|
8
8
|
//# sourceMappingURL=theia-notification-indicator.d.ts.map
|
|
@@ -1,45 +1,45 @@
|
|
|
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-only WITH Classpath-exception-2.0
|
|
16
|
-
// *****************************************************************************
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.TheiaNotificationIndicator = void 0;
|
|
19
|
-
const theia_status_indicator_1 = require("./theia-status-indicator");
|
|
20
|
-
const NOTIFICATION_DOT_ICON = 'codicon-bell-dot';
|
|
21
|
-
class TheiaNotificationIndicator extends theia_status_indicator_1.TheiaStatusIndicator {
|
|
22
|
-
constructor() {
|
|
23
|
-
super(...arguments);
|
|
24
|
-
this.id = 'theia-notification-center';
|
|
25
|
-
}
|
|
26
|
-
async hasNotifications() {
|
|
27
|
-
const container = await this.getElementHandle();
|
|
28
|
-
const bellWithDot = await container.$(`.${NOTIFICATION_DOT_ICON}`);
|
|
29
|
-
return Boolean(bellWithDot === null || bellWithDot === void 0 ? void 0 : bellWithDot.isVisible());
|
|
30
|
-
}
|
|
31
|
-
async waitForVisible(expectNotifications = false) {
|
|
32
|
-
await super.waitForVisible();
|
|
33
|
-
if (expectNotifications && !(await this.hasNotifications())) {
|
|
34
|
-
throw new Error('No notifications when notifications expected.');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
async toggleOverlay() {
|
|
38
|
-
const element = await this.getElementHandle();
|
|
39
|
-
if (element) {
|
|
40
|
-
await element.click();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.TheiaNotificationIndicator = TheiaNotificationIndicator;
|
|
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-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaNotificationIndicator = void 0;
|
|
19
|
+
const theia_status_indicator_1 = require("./theia-status-indicator");
|
|
20
|
+
const NOTIFICATION_DOT_ICON = 'codicon-bell-dot';
|
|
21
|
+
class TheiaNotificationIndicator extends theia_status_indicator_1.TheiaStatusIndicator {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.id = 'theia-notification-center';
|
|
25
|
+
}
|
|
26
|
+
async hasNotifications() {
|
|
27
|
+
const container = await this.getElementHandle();
|
|
28
|
+
const bellWithDot = await container.$(`.${NOTIFICATION_DOT_ICON}`);
|
|
29
|
+
return Boolean(bellWithDot === null || bellWithDot === void 0 ? void 0 : bellWithDot.isVisible());
|
|
30
|
+
}
|
|
31
|
+
async waitForVisible(expectNotifications = false) {
|
|
32
|
+
await super.waitForVisible();
|
|
33
|
+
if (expectNotifications && !(await this.hasNotifications())) {
|
|
34
|
+
throw new Error('No notifications when notifications expected.');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async toggleOverlay() {
|
|
38
|
+
const element = await this.getElementHandle();
|
|
39
|
+
if (element) {
|
|
40
|
+
await element.click();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.TheiaNotificationIndicator = TheiaNotificationIndicator;
|
|
45
45
|
//# sourceMappingURL=theia-notification-indicator.js.map
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { TheiaApp } from './theia-app';
|
|
2
|
-
import { TheiaNotificationIndicator } from './theia-notification-indicator';
|
|
3
|
-
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
-
export declare class TheiaNotificationOverlay extends TheiaPageObject {
|
|
5
|
-
protected notificationIndicator: TheiaNotificationIndicator;
|
|
6
|
-
protected readonly HEADER_NOTIFICATIONS = "NOTIFICATIONS";
|
|
7
|
-
protected readonly HEADER_NO_NOTIFICATIONS = "NO NEW NOTIFICATIONS";
|
|
8
|
-
constructor(app: TheiaApp, notificationIndicator: TheiaNotificationIndicator);
|
|
9
|
-
protected get selector(): string;
|
|
10
|
-
protected get containerSelector(): string;
|
|
11
|
-
protected get titleSelector(): string;
|
|
12
|
-
isVisible(): Promise<boolean>;
|
|
13
|
-
waitForVisible(): Promise<void>;
|
|
14
|
-
activate(): Promise<void>;
|
|
15
|
-
toggle(): Promise<void>;
|
|
16
|
-
protected entrySelector(entryText: string): string;
|
|
17
|
-
waitForEntry(entryText: string): Promise<void>;
|
|
18
|
-
waitForEntryDetached(entryText: string): Promise<void>;
|
|
19
|
-
isEntryVisible(entryText: string): Promise<boolean>;
|
|
20
|
-
protected get clearAllButtonSelector(): string;
|
|
21
|
-
clearAllNotifications(): Promise<void>;
|
|
22
|
-
}
|
|
1
|
+
import { TheiaApp } from './theia-app';
|
|
2
|
+
import { TheiaNotificationIndicator } from './theia-notification-indicator';
|
|
3
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
+
export declare class TheiaNotificationOverlay extends TheiaPageObject {
|
|
5
|
+
protected notificationIndicator: TheiaNotificationIndicator;
|
|
6
|
+
protected readonly HEADER_NOTIFICATIONS = "NOTIFICATIONS";
|
|
7
|
+
protected readonly HEADER_NO_NOTIFICATIONS = "NO NEW NOTIFICATIONS";
|
|
8
|
+
constructor(app: TheiaApp, notificationIndicator: TheiaNotificationIndicator);
|
|
9
|
+
protected get selector(): string;
|
|
10
|
+
protected get containerSelector(): string;
|
|
11
|
+
protected get titleSelector(): string;
|
|
12
|
+
isVisible(): Promise<boolean>;
|
|
13
|
+
waitForVisible(): Promise<void>;
|
|
14
|
+
activate(): Promise<void>;
|
|
15
|
+
toggle(): Promise<void>;
|
|
16
|
+
protected entrySelector(entryText: string): string;
|
|
17
|
+
waitForEntry(entryText: string): Promise<void>;
|
|
18
|
+
waitForEntryDetached(entryText: string): Promise<void>;
|
|
19
|
+
isEntryVisible(entryText: string): Promise<boolean>;
|
|
20
|
+
protected get clearAllButtonSelector(): string;
|
|
21
|
+
clearAllNotifications(): Promise<void>;
|
|
22
|
+
}
|
|
23
23
|
//# sourceMappingURL=theia-notification-overlay.d.ts.map
|
|
@@ -1,80 +1,80 @@
|
|
|
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-only WITH Classpath-exception-2.0
|
|
16
|
-
// *****************************************************************************
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.TheiaNotificationOverlay = void 0;
|
|
19
|
-
const theia_page_object_1 = require("./theia-page-object");
|
|
20
|
-
class TheiaNotificationOverlay extends theia_page_object_1.TheiaPageObject {
|
|
21
|
-
constructor(app, notificationIndicator) {
|
|
22
|
-
super(app);
|
|
23
|
-
this.notificationIndicator = notificationIndicator;
|
|
24
|
-
this.HEADER_NOTIFICATIONS = 'NOTIFICATIONS';
|
|
25
|
-
this.HEADER_NO_NOTIFICATIONS = 'NO NEW NOTIFICATIONS';
|
|
26
|
-
}
|
|
27
|
-
get selector() {
|
|
28
|
-
return '.theia-notifications-overlay';
|
|
29
|
-
}
|
|
30
|
-
get containerSelector() {
|
|
31
|
-
return `${this.selector} .theia-notifications-container.theia-notification-center`;
|
|
32
|
-
}
|
|
33
|
-
get titleSelector() {
|
|
34
|
-
return `${this.containerSelector} .theia-notification-center-header-title`;
|
|
35
|
-
}
|
|
36
|
-
async isVisible() {
|
|
37
|
-
const element = await this.page.$(`${this.containerSelector}.open`);
|
|
38
|
-
return element ? element.isVisible() : false;
|
|
39
|
-
}
|
|
40
|
-
async waitForVisible() {
|
|
41
|
-
await this.page.waitForSelector(`${this.containerSelector}.open`);
|
|
42
|
-
}
|
|
43
|
-
async activate() {
|
|
44
|
-
if (!await this.isVisible()) {
|
|
45
|
-
await this.notificationIndicator.toggleOverlay();
|
|
46
|
-
}
|
|
47
|
-
await this.waitForVisible();
|
|
48
|
-
}
|
|
49
|
-
async toggle() {
|
|
50
|
-
await this.app.quickCommandPalette.type('Toggle Notifications');
|
|
51
|
-
await this.app.quickCommandPalette.trigger('Notifications: Toggle Notifications');
|
|
52
|
-
}
|
|
53
|
-
entrySelector(entryText) {
|
|
54
|
-
return `${this.containerSelector} .theia-notification-message span:has-text("${entryText}")`;
|
|
55
|
-
}
|
|
56
|
-
async waitForEntry(entryText) {
|
|
57
|
-
await this.activate();
|
|
58
|
-
await this.page.waitForSelector(this.entrySelector(entryText));
|
|
59
|
-
}
|
|
60
|
-
async waitForEntryDetached(entryText) {
|
|
61
|
-
await this.activate();
|
|
62
|
-
await this.page.waitForSelector(this.entrySelector(entryText), { state: 'detached' });
|
|
63
|
-
}
|
|
64
|
-
async isEntryVisible(entryText) {
|
|
65
|
-
await this.activate();
|
|
66
|
-
const element = await this.page.$(this.entrySelector(entryText));
|
|
67
|
-
return !!element && element.isVisible();
|
|
68
|
-
}
|
|
69
|
-
get clearAllButtonSelector() {
|
|
70
|
-
return this.selector + ' .theia-notification-center-header ul > li.codicon.codicon-clear-all';
|
|
71
|
-
}
|
|
72
|
-
async clearAllNotifications() {
|
|
73
|
-
await this.activate();
|
|
74
|
-
const element = await this.page.waitForSelector(this.clearAllButtonSelector);
|
|
75
|
-
await element.click();
|
|
76
|
-
await this.notificationIndicator.waitForVisible(false /* expectNotifications */);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
exports.TheiaNotificationOverlay = TheiaNotificationOverlay;
|
|
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-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaNotificationOverlay = void 0;
|
|
19
|
+
const theia_page_object_1 = require("./theia-page-object");
|
|
20
|
+
class TheiaNotificationOverlay extends theia_page_object_1.TheiaPageObject {
|
|
21
|
+
constructor(app, notificationIndicator) {
|
|
22
|
+
super(app);
|
|
23
|
+
this.notificationIndicator = notificationIndicator;
|
|
24
|
+
this.HEADER_NOTIFICATIONS = 'NOTIFICATIONS';
|
|
25
|
+
this.HEADER_NO_NOTIFICATIONS = 'NO NEW NOTIFICATIONS';
|
|
26
|
+
}
|
|
27
|
+
get selector() {
|
|
28
|
+
return '.theia-notifications-overlay';
|
|
29
|
+
}
|
|
30
|
+
get containerSelector() {
|
|
31
|
+
return `${this.selector} .theia-notifications-container.theia-notification-center`;
|
|
32
|
+
}
|
|
33
|
+
get titleSelector() {
|
|
34
|
+
return `${this.containerSelector} .theia-notification-center-header-title`;
|
|
35
|
+
}
|
|
36
|
+
async isVisible() {
|
|
37
|
+
const element = await this.page.$(`${this.containerSelector}.open`);
|
|
38
|
+
return element ? element.isVisible() : false;
|
|
39
|
+
}
|
|
40
|
+
async waitForVisible() {
|
|
41
|
+
await this.page.waitForSelector(`${this.containerSelector}.open`);
|
|
42
|
+
}
|
|
43
|
+
async activate() {
|
|
44
|
+
if (!await this.isVisible()) {
|
|
45
|
+
await this.notificationIndicator.toggleOverlay();
|
|
46
|
+
}
|
|
47
|
+
await this.waitForVisible();
|
|
48
|
+
}
|
|
49
|
+
async toggle() {
|
|
50
|
+
await this.app.quickCommandPalette.type('Toggle Notifications');
|
|
51
|
+
await this.app.quickCommandPalette.trigger('Notifications: Toggle Notifications');
|
|
52
|
+
}
|
|
53
|
+
entrySelector(entryText) {
|
|
54
|
+
return `${this.containerSelector} .theia-notification-message span:has-text("${entryText}")`;
|
|
55
|
+
}
|
|
56
|
+
async waitForEntry(entryText) {
|
|
57
|
+
await this.activate();
|
|
58
|
+
await this.page.waitForSelector(this.entrySelector(entryText));
|
|
59
|
+
}
|
|
60
|
+
async waitForEntryDetached(entryText) {
|
|
61
|
+
await this.activate();
|
|
62
|
+
await this.page.waitForSelector(this.entrySelector(entryText), { state: 'detached' });
|
|
63
|
+
}
|
|
64
|
+
async isEntryVisible(entryText) {
|
|
65
|
+
await this.activate();
|
|
66
|
+
const element = await this.page.$(this.entrySelector(entryText));
|
|
67
|
+
return !!element && element.isVisible();
|
|
68
|
+
}
|
|
69
|
+
get clearAllButtonSelector() {
|
|
70
|
+
return this.selector + ' .theia-notification-center-header ul > li.codicon.codicon-clear-all';
|
|
71
|
+
}
|
|
72
|
+
async clearAllNotifications() {
|
|
73
|
+
await this.activate();
|
|
74
|
+
const element = await this.page.waitForSelector(this.clearAllButtonSelector);
|
|
75
|
+
await element.click();
|
|
76
|
+
await this.notificationIndicator.waitForVisible(false /* expectNotifications */);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.TheiaNotificationOverlay = TheiaNotificationOverlay;
|
|
80
80
|
//# sourceMappingURL=theia-notification-overlay.js.map
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { ElementHandle } from '@playwright/test';
|
|
2
|
-
import { TheiaOutputView } from './theia-output-view';
|
|
3
|
-
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
-
import { TheiaMonacoEditor } from './theia-monaco-editor';
|
|
5
|
-
export interface TheiaOutputViewChannelData {
|
|
6
|
-
viewSelector: string;
|
|
7
|
-
dataUri: string;
|
|
8
|
-
channelName: string;
|
|
9
|
-
}
|
|
10
|
-
export declare class TheiaOutputViewChannel extends TheiaPageObject {
|
|
11
|
-
protected readonly data: TheiaOutputViewChannelData;
|
|
12
|
-
protected readonly outputView: TheiaOutputView;
|
|
13
|
-
protected monacoEditor: TheiaMonacoEditor;
|
|
14
|
-
constructor(data: TheiaOutputViewChannelData, outputView: TheiaOutputView);
|
|
15
|
-
protected get viewSelector(): string;
|
|
16
|
-
protected get dataUri(): string | undefined;
|
|
17
|
-
protected get channelName(): string | undefined;
|
|
18
|
-
waitForVisible(): Promise<void>;
|
|
19
|
-
isDisplayed(): Promise<boolean>;
|
|
20
|
-
protected viewElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
21
|
-
numberOfLines(): Promise<number | undefined>;
|
|
22
|
-
maxSeverityOfLineByLineNumber(lineNumber: number): Promise<'error' | 'warning' | 'info'>;
|
|
23
|
-
textContentOfLineByLineNumber(lineNumber: number): Promise<string | undefined>;
|
|
24
|
-
}
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaOutputView } from './theia-output-view';
|
|
3
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
+
import { TheiaMonacoEditor } from './theia-monaco-editor';
|
|
5
|
+
export interface TheiaOutputViewChannelData {
|
|
6
|
+
viewSelector: string;
|
|
7
|
+
dataUri: string;
|
|
8
|
+
channelName: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class TheiaOutputViewChannel extends TheiaPageObject {
|
|
11
|
+
protected readonly data: TheiaOutputViewChannelData;
|
|
12
|
+
protected readonly outputView: TheiaOutputView;
|
|
13
|
+
protected monacoEditor: TheiaMonacoEditor;
|
|
14
|
+
constructor(data: TheiaOutputViewChannelData, outputView: TheiaOutputView);
|
|
15
|
+
protected get viewSelector(): string;
|
|
16
|
+
protected get dataUri(): string | undefined;
|
|
17
|
+
protected get channelName(): string | undefined;
|
|
18
|
+
waitForVisible(): Promise<void>;
|
|
19
|
+
isDisplayed(): Promise<boolean>;
|
|
20
|
+
protected viewElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
21
|
+
numberOfLines(): Promise<number | undefined>;
|
|
22
|
+
maxSeverityOfLineByLineNumber(lineNumber: number): Promise<'error' | 'warning' | 'info'>;
|
|
23
|
+
textContentOfLineByLineNumber(lineNumber: number): Promise<string | undefined>;
|
|
24
|
+
}
|
|
25
25
|
//# sourceMappingURL=theia-output-channel.d.ts.map
|