@theia/playwright 1.48.0 → 1.48.1
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 +48 -48
- 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 +1 -1
- package/lib/tests/theia-application-shell.test.js +57 -57
- 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-getting-started.test.d.ts +1 -1
- package/lib/tests/theia-getting-started.test.js +45 -45
- package/lib/tests/theia-main-menu.test.d.ts +1 -1
- package/lib/tests/theia-main-menu.test.js +111 -111
- 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 +78 -78
- package/lib/theia-rename-dialog.d.ts +5 -5
- package/lib/theia-rename-dialog.js +34 -34
- 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 +5 -5
- package/lib/theia-welcome-view.js +30 -30
- 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 -67
- package/src/tests/theia-explorer-view.test.ts +211 -211
- package/src/tests/theia-getting-started.test.ts +50 -50
- package/src/tests/theia-main-menu.test.ts +133 -133
- 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 +81 -81
- package/src/theia-rename-dialog.ts +35 -35
- 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 -31
- package/src/theia-workspace.ts +76 -76
- package/src/util.ts +91 -91
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { ElementHandle } from '@playwright/test';
|
|
2
|
-
import { TheiaApp } from './theia-app';
|
|
3
|
-
import { TheiaEditor } from './theia-editor';
|
|
4
|
-
import { TheiaMonacoEditor } from './theia-monaco-editor';
|
|
5
|
-
export declare class TheiaTextEditor extends TheiaEditor {
|
|
6
|
-
protected monacoEditor: TheiaMonacoEditor;
|
|
7
|
-
constructor(filePath: string, app: TheiaApp);
|
|
8
|
-
numberOfLines(): Promise<number | undefined>;
|
|
9
|
-
textContentOfLineByLineNumber(lineNumber: number): Promise<string | undefined>;
|
|
10
|
-
replaceLineWithLineNumber(text: string, lineNumber: number): Promise<void>;
|
|
11
|
-
protected typeTextAndHitEnter(text: string): Promise<void>;
|
|
12
|
-
selectLineWithLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
13
|
-
placeCursorInLineWithLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
14
|
-
deleteLineByLineNumber(lineNumber: number): Promise<void>;
|
|
15
|
-
textContentOfLineContainingText(text: string): Promise<string | undefined>;
|
|
16
|
-
replaceLineContainingText(newText: string, oldText: string): Promise<void>;
|
|
17
|
-
selectLineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
18
|
-
placeCursorInLineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
19
|
-
deleteLineContainingText(text: string): Promise<void>;
|
|
20
|
-
addTextToNewLineAfterLineContainingText(textContainedByExistingLine: string, newText: string): Promise<void>;
|
|
21
|
-
addTextToNewLineAfterLineByLineNumber(lineNumber: number, newText: string): Promise<void>;
|
|
22
|
-
protected selectLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<void>;
|
|
23
|
-
protected placeCursorInLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<void>;
|
|
24
|
-
protected selectedSuggestion(): Promise<ElementHandle<SVGElement | HTMLElement>>;
|
|
25
|
-
getSelectedSuggestionText(): Promise<string>;
|
|
26
|
-
}
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaApp } from './theia-app';
|
|
3
|
+
import { TheiaEditor } from './theia-editor';
|
|
4
|
+
import { TheiaMonacoEditor } from './theia-monaco-editor';
|
|
5
|
+
export declare class TheiaTextEditor extends TheiaEditor {
|
|
6
|
+
protected monacoEditor: TheiaMonacoEditor;
|
|
7
|
+
constructor(filePath: string, app: TheiaApp);
|
|
8
|
+
numberOfLines(): Promise<number | undefined>;
|
|
9
|
+
textContentOfLineByLineNumber(lineNumber: number): Promise<string | undefined>;
|
|
10
|
+
replaceLineWithLineNumber(text: string, lineNumber: number): Promise<void>;
|
|
11
|
+
protected typeTextAndHitEnter(text: string): Promise<void>;
|
|
12
|
+
selectLineWithLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
13
|
+
placeCursorInLineWithLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
14
|
+
deleteLineByLineNumber(lineNumber: number): Promise<void>;
|
|
15
|
+
textContentOfLineContainingText(text: string): Promise<string | undefined>;
|
|
16
|
+
replaceLineContainingText(newText: string, oldText: string): Promise<void>;
|
|
17
|
+
selectLineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
18
|
+
placeCursorInLineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
|
|
19
|
+
deleteLineContainingText(text: string): Promise<void>;
|
|
20
|
+
addTextToNewLineAfterLineContainingText(textContainedByExistingLine: string, newText: string): Promise<void>;
|
|
21
|
+
addTextToNewLineAfterLineByLineNumber(lineNumber: number, newText: string): Promise<void>;
|
|
22
|
+
protected selectLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<void>;
|
|
23
|
+
protected placeCursorInLine(lineElement: ElementHandle<SVGElement | HTMLElement> | undefined): Promise<void>;
|
|
24
|
+
protected selectedSuggestion(): Promise<ElementHandle<SVGElement | HTMLElement>>;
|
|
25
|
+
getSelectedSuggestionText(): Promise<string>;
|
|
26
|
+
}
|
|
27
27
|
//# sourceMappingURL=theia-text-editor.d.ts.map
|
package/lib/theia-text-editor.js
CHANGED
|
@@ -1,121 +1,121 @@
|
|
|
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.TheiaTextEditor = void 0;
|
|
19
|
-
const path_1 = require("path");
|
|
20
|
-
const theia_editor_1 = require("./theia-editor");
|
|
21
|
-
const util_1 = require("./util");
|
|
22
|
-
const theia_monaco_editor_1 = require("./theia-monaco-editor");
|
|
23
|
-
class TheiaTextEditor extends theia_editor_1.TheiaEditor {
|
|
24
|
-
constructor(filePath, app) {
|
|
25
|
-
// shell-tab-code-editor-opener:file:///c%3A/Users/user/AppData/Local/Temp/cloud-ws-JBUhb6/sample.txt:1
|
|
26
|
-
// code-editor-opener:file:///c%3A/Users/user/AppData/Local/Temp/cloud-ws-JBUhb6/sample.txt:1
|
|
27
|
-
super({
|
|
28
|
-
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`),
|
|
29
|
-
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'
|
|
30
|
-
}, app);
|
|
31
|
-
this.monacoEditor = new theia_monaco_editor_1.TheiaMonacoEditor(this.viewSelector, app);
|
|
32
|
-
}
|
|
33
|
-
async numberOfLines() {
|
|
34
|
-
await this.activate();
|
|
35
|
-
return this.monacoEditor.numberOfLines();
|
|
36
|
-
}
|
|
37
|
-
async textContentOfLineByLineNumber(lineNumber) {
|
|
38
|
-
return this.monacoEditor.textContentOfLineByLineNumber(lineNumber);
|
|
39
|
-
}
|
|
40
|
-
async replaceLineWithLineNumber(text, lineNumber) {
|
|
41
|
-
await this.selectLineWithLineNumber(lineNumber);
|
|
42
|
-
await this.typeTextAndHitEnter(text);
|
|
43
|
-
}
|
|
44
|
-
async typeTextAndHitEnter(text) {
|
|
45
|
-
await this.page.keyboard.type(text);
|
|
46
|
-
await this.page.keyboard.press('Enter');
|
|
47
|
-
}
|
|
48
|
-
async selectLineWithLineNumber(lineNumber) {
|
|
49
|
-
await this.activate();
|
|
50
|
-
const lineElement = await this.monacoEditor.lineByLineNumber(lineNumber);
|
|
51
|
-
await this.selectLine(lineElement);
|
|
52
|
-
return lineElement;
|
|
53
|
-
}
|
|
54
|
-
async placeCursorInLineWithLineNumber(lineNumber) {
|
|
55
|
-
await this.activate();
|
|
56
|
-
const lineElement = await this.monacoEditor.lineByLineNumber(lineNumber);
|
|
57
|
-
await this.placeCursorInLine(lineElement);
|
|
58
|
-
return lineElement;
|
|
59
|
-
}
|
|
60
|
-
async deleteLineByLineNumber(lineNumber) {
|
|
61
|
-
await this.selectLineWithLineNumber(lineNumber);
|
|
62
|
-
await this.page.keyboard.press('Backspace');
|
|
63
|
-
}
|
|
64
|
-
async textContentOfLineContainingText(text) {
|
|
65
|
-
await this.activate();
|
|
66
|
-
return this.monacoEditor.textContentOfLineContainingText(text);
|
|
67
|
-
}
|
|
68
|
-
async replaceLineContainingText(newText, oldText) {
|
|
69
|
-
await this.selectLineContainingText(oldText);
|
|
70
|
-
await this.typeTextAndHitEnter(newText);
|
|
71
|
-
}
|
|
72
|
-
async selectLineContainingText(text) {
|
|
73
|
-
await this.activate();
|
|
74
|
-
const lineElement = await this.monacoEditor.lineContainingText(text);
|
|
75
|
-
await this.selectLine(lineElement);
|
|
76
|
-
return lineElement;
|
|
77
|
-
}
|
|
78
|
-
async placeCursorInLineContainingText(text) {
|
|
79
|
-
await this.activate();
|
|
80
|
-
const lineElement = await this.monacoEditor.lineContainingText(text);
|
|
81
|
-
await this.placeCursorInLine(lineElement);
|
|
82
|
-
return lineElement;
|
|
83
|
-
}
|
|
84
|
-
async deleteLineContainingText(text) {
|
|
85
|
-
await this.selectLineContainingText(text);
|
|
86
|
-
await this.page.keyboard.press('Backspace');
|
|
87
|
-
}
|
|
88
|
-
async addTextToNewLineAfterLineContainingText(textContainedByExistingLine, newText) {
|
|
89
|
-
const existingLine = await this.monacoEditor.lineContainingText(textContainedByExistingLine);
|
|
90
|
-
await this.placeCursorInLine(existingLine);
|
|
91
|
-
await this.page.keyboard.press('End');
|
|
92
|
-
await this.page.keyboard.press('Enter');
|
|
93
|
-
await this.page.keyboard.type(newText);
|
|
94
|
-
}
|
|
95
|
-
async addTextToNewLineAfterLineByLineNumber(lineNumber, newText) {
|
|
96
|
-
const existingLine = await this.monacoEditor.lineByLineNumber(lineNumber);
|
|
97
|
-
await this.placeCursorInLine(existingLine);
|
|
98
|
-
await this.page.keyboard.press('End');
|
|
99
|
-
await this.page.keyboard.press('Enter');
|
|
100
|
-
await this.page.keyboard.type(newText);
|
|
101
|
-
}
|
|
102
|
-
async selectLine(lineElement) {
|
|
103
|
-
await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.click({ clickCount: 3 }));
|
|
104
|
-
}
|
|
105
|
-
async placeCursorInLine(lineElement) {
|
|
106
|
-
await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.click());
|
|
107
|
-
}
|
|
108
|
-
async selectedSuggestion() {
|
|
109
|
-
return this.page.waitForSelector(this.viewSelector + ' .monaco-list-row.show-file-icons.focused');
|
|
110
|
-
}
|
|
111
|
-
async getSelectedSuggestionText() {
|
|
112
|
-
const suggestion = await this.selectedSuggestion();
|
|
113
|
-
const text = await suggestion.textContent();
|
|
114
|
-
if (text === null) {
|
|
115
|
-
throw new Error('Text content could not be found');
|
|
116
|
-
}
|
|
117
|
-
return text;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
exports.TheiaTextEditor = TheiaTextEditor;
|
|
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.TheiaTextEditor = void 0;
|
|
19
|
+
const path_1 = require("path");
|
|
20
|
+
const theia_editor_1 = require("./theia-editor");
|
|
21
|
+
const util_1 = require("./util");
|
|
22
|
+
const theia_monaco_editor_1 = require("./theia-monaco-editor");
|
|
23
|
+
class TheiaTextEditor extends theia_editor_1.TheiaEditor {
|
|
24
|
+
constructor(filePath, app) {
|
|
25
|
+
// shell-tab-code-editor-opener:file:///c%3A/Users/user/AppData/Local/Temp/cloud-ws-JBUhb6/sample.txt:1
|
|
26
|
+
// code-editor-opener:file:///c%3A/Users/user/AppData/Local/Temp/cloud-ws-JBUhb6/sample.txt:1
|
|
27
|
+
super({
|
|
28
|
+
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`),
|
|
29
|
+
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'
|
|
30
|
+
}, app);
|
|
31
|
+
this.monacoEditor = new theia_monaco_editor_1.TheiaMonacoEditor(this.viewSelector, app);
|
|
32
|
+
}
|
|
33
|
+
async numberOfLines() {
|
|
34
|
+
await this.activate();
|
|
35
|
+
return this.monacoEditor.numberOfLines();
|
|
36
|
+
}
|
|
37
|
+
async textContentOfLineByLineNumber(lineNumber) {
|
|
38
|
+
return this.monacoEditor.textContentOfLineByLineNumber(lineNumber);
|
|
39
|
+
}
|
|
40
|
+
async replaceLineWithLineNumber(text, lineNumber) {
|
|
41
|
+
await this.selectLineWithLineNumber(lineNumber);
|
|
42
|
+
await this.typeTextAndHitEnter(text);
|
|
43
|
+
}
|
|
44
|
+
async typeTextAndHitEnter(text) {
|
|
45
|
+
await this.page.keyboard.type(text);
|
|
46
|
+
await this.page.keyboard.press('Enter');
|
|
47
|
+
}
|
|
48
|
+
async selectLineWithLineNumber(lineNumber) {
|
|
49
|
+
await this.activate();
|
|
50
|
+
const lineElement = await this.monacoEditor.lineByLineNumber(lineNumber);
|
|
51
|
+
await this.selectLine(lineElement);
|
|
52
|
+
return lineElement;
|
|
53
|
+
}
|
|
54
|
+
async placeCursorInLineWithLineNumber(lineNumber) {
|
|
55
|
+
await this.activate();
|
|
56
|
+
const lineElement = await this.monacoEditor.lineByLineNumber(lineNumber);
|
|
57
|
+
await this.placeCursorInLine(lineElement);
|
|
58
|
+
return lineElement;
|
|
59
|
+
}
|
|
60
|
+
async deleteLineByLineNumber(lineNumber) {
|
|
61
|
+
await this.selectLineWithLineNumber(lineNumber);
|
|
62
|
+
await this.page.keyboard.press('Backspace');
|
|
63
|
+
}
|
|
64
|
+
async textContentOfLineContainingText(text) {
|
|
65
|
+
await this.activate();
|
|
66
|
+
return this.monacoEditor.textContentOfLineContainingText(text);
|
|
67
|
+
}
|
|
68
|
+
async replaceLineContainingText(newText, oldText) {
|
|
69
|
+
await this.selectLineContainingText(oldText);
|
|
70
|
+
await this.typeTextAndHitEnter(newText);
|
|
71
|
+
}
|
|
72
|
+
async selectLineContainingText(text) {
|
|
73
|
+
await this.activate();
|
|
74
|
+
const lineElement = await this.monacoEditor.lineContainingText(text);
|
|
75
|
+
await this.selectLine(lineElement);
|
|
76
|
+
return lineElement;
|
|
77
|
+
}
|
|
78
|
+
async placeCursorInLineContainingText(text) {
|
|
79
|
+
await this.activate();
|
|
80
|
+
const lineElement = await this.monacoEditor.lineContainingText(text);
|
|
81
|
+
await this.placeCursorInLine(lineElement);
|
|
82
|
+
return lineElement;
|
|
83
|
+
}
|
|
84
|
+
async deleteLineContainingText(text) {
|
|
85
|
+
await this.selectLineContainingText(text);
|
|
86
|
+
await this.page.keyboard.press('Backspace');
|
|
87
|
+
}
|
|
88
|
+
async addTextToNewLineAfterLineContainingText(textContainedByExistingLine, newText) {
|
|
89
|
+
const existingLine = await this.monacoEditor.lineContainingText(textContainedByExistingLine);
|
|
90
|
+
await this.placeCursorInLine(existingLine);
|
|
91
|
+
await this.page.keyboard.press('End');
|
|
92
|
+
await this.page.keyboard.press('Enter');
|
|
93
|
+
await this.page.keyboard.type(newText);
|
|
94
|
+
}
|
|
95
|
+
async addTextToNewLineAfterLineByLineNumber(lineNumber, newText) {
|
|
96
|
+
const existingLine = await this.monacoEditor.lineByLineNumber(lineNumber);
|
|
97
|
+
await this.placeCursorInLine(existingLine);
|
|
98
|
+
await this.page.keyboard.press('End');
|
|
99
|
+
await this.page.keyboard.press('Enter');
|
|
100
|
+
await this.page.keyboard.type(newText);
|
|
101
|
+
}
|
|
102
|
+
async selectLine(lineElement) {
|
|
103
|
+
await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.click({ clickCount: 3 }));
|
|
104
|
+
}
|
|
105
|
+
async placeCursorInLine(lineElement) {
|
|
106
|
+
await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.click());
|
|
107
|
+
}
|
|
108
|
+
async selectedSuggestion() {
|
|
109
|
+
return this.page.waitForSelector(this.viewSelector + ' .monaco-list-row.show-file-icons.focused');
|
|
110
|
+
}
|
|
111
|
+
async getSelectedSuggestionText() {
|
|
112
|
+
const suggestion = await this.selectedSuggestion();
|
|
113
|
+
const text = await suggestion.textContent();
|
|
114
|
+
if (text === null) {
|
|
115
|
+
throw new Error('Text content could not be found');
|
|
116
|
+
}
|
|
117
|
+
return text;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.TheiaTextEditor = TheiaTextEditor;
|
|
121
121
|
//# sourceMappingURL=theia-text-editor.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TheiaStatusIndicator } from './theia-status-indicator';
|
|
2
|
-
export declare class TheiaToggleBottomIndicator extends TheiaStatusIndicator {
|
|
3
|
-
id: string;
|
|
4
|
-
}
|
|
1
|
+
import { TheiaStatusIndicator } from './theia-status-indicator';
|
|
2
|
+
export declare class TheiaToggleBottomIndicator extends TheiaStatusIndicator {
|
|
3
|
+
id: string;
|
|
4
|
+
}
|
|
5
5
|
//# sourceMappingURL=theia-toggle-bottom-indicator.d.ts.map
|
|
@@ -1,27 +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-only 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
|
-
class TheiaToggleBottomIndicator extends theia_status_indicator_1.TheiaStatusIndicator {
|
|
21
|
-
constructor() {
|
|
22
|
-
super(...arguments);
|
|
23
|
-
this.id = 'bottom-panel-toggle';
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
exports.TheiaToggleBottomIndicator = TheiaToggleBottomIndicator;
|
|
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.TheiaToggleBottomIndicator = void 0;
|
|
19
|
+
const theia_status_indicator_1 = require("./theia-status-indicator");
|
|
20
|
+
class TheiaToggleBottomIndicator extends theia_status_indicator_1.TheiaStatusIndicator {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.id = 'bottom-panel-toggle';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.TheiaToggleBottomIndicator = TheiaToggleBottomIndicator;
|
|
27
27
|
//# sourceMappingURL=theia-toggle-bottom-indicator.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ElementHandle } from '@playwright/test';
|
|
2
|
-
import { TheiaApp } from './theia-app';
|
|
3
|
-
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
-
export declare class TheiaToolbarItem extends TheiaPageObject {
|
|
5
|
-
protected element: ElementHandle<SVGElement | HTMLElement>;
|
|
6
|
-
constructor(app: TheiaApp, element: ElementHandle<SVGElement | HTMLElement>);
|
|
7
|
-
commandId(): Promise<string | null>;
|
|
8
|
-
isEnabled(): Promise<boolean>;
|
|
9
|
-
trigger(): Promise<void>;
|
|
10
|
-
}
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaApp } from './theia-app';
|
|
3
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
+
export declare class TheiaToolbarItem extends TheiaPageObject {
|
|
5
|
+
protected element: ElementHandle<SVGElement | HTMLElement>;
|
|
6
|
+
constructor(app: TheiaApp, element: ElementHandle<SVGElement | HTMLElement>);
|
|
7
|
+
commandId(): Promise<string | null>;
|
|
8
|
+
isEnabled(): Promise<boolean>;
|
|
9
|
+
trigger(): Promise<void>;
|
|
10
|
+
}
|
|
11
11
|
//# sourceMappingURL=theia-toolbar-item.d.ts.map
|
|
@@ -1,40 +1,40 @@
|
|
|
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.TheiaToolbarItem = void 0;
|
|
19
|
-
const theia_page_object_1 = require("./theia-page-object");
|
|
20
|
-
class TheiaToolbarItem extends theia_page_object_1.TheiaPageObject {
|
|
21
|
-
constructor(app, element) {
|
|
22
|
-
super(app);
|
|
23
|
-
this.element = element;
|
|
24
|
-
}
|
|
25
|
-
async commandId() {
|
|
26
|
-
return this.element.getAttribute('id');
|
|
27
|
-
}
|
|
28
|
-
async isEnabled() {
|
|
29
|
-
const classAttribute = await this.element.getAttribute('class');
|
|
30
|
-
if (classAttribute === undefined || classAttribute === null) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
return classAttribute.includes('enabled');
|
|
34
|
-
}
|
|
35
|
-
async trigger() {
|
|
36
|
-
await this.element.click();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.TheiaToolbarItem = TheiaToolbarItem;
|
|
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.TheiaToolbarItem = void 0;
|
|
19
|
+
const theia_page_object_1 = require("./theia-page-object");
|
|
20
|
+
class TheiaToolbarItem extends theia_page_object_1.TheiaPageObject {
|
|
21
|
+
constructor(app, element) {
|
|
22
|
+
super(app);
|
|
23
|
+
this.element = element;
|
|
24
|
+
}
|
|
25
|
+
async commandId() {
|
|
26
|
+
return this.element.getAttribute('id');
|
|
27
|
+
}
|
|
28
|
+
async isEnabled() {
|
|
29
|
+
const classAttribute = await this.element.getAttribute('class');
|
|
30
|
+
if (classAttribute === undefined || classAttribute === null) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return classAttribute.includes('enabled');
|
|
34
|
+
}
|
|
35
|
+
async trigger() {
|
|
36
|
+
await this.element.click();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.TheiaToolbarItem = TheiaToolbarItem;
|
|
40
40
|
//# sourceMappingURL=theia-toolbar-item.js.map
|
package/lib/theia-toolbar.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { ElementHandle } from '@playwright/test';
|
|
2
|
-
import { TheiaPageObject } from './theia-page-object';
|
|
3
|
-
import { TheiaToolbarItem } from './theia-toolbar-item';
|
|
4
|
-
export declare class TheiaToolbar extends TheiaPageObject {
|
|
5
|
-
selector: string;
|
|
6
|
-
protected toolbarElementHandle(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
7
|
-
waitForVisible(): Promise<void>;
|
|
8
|
-
isShown(): Promise<boolean>;
|
|
9
|
-
show(): Promise<void>;
|
|
10
|
-
hide(): Promise<void>;
|
|
11
|
-
toggle(): Promise<void>;
|
|
12
|
-
waitUntilHidden(): Promise<void>;
|
|
13
|
-
waitUntilShown(): Promise<void>;
|
|
14
|
-
toolbarItems(): Promise<TheiaToolbarItem[]>;
|
|
15
|
-
toolbarItemIds(): Promise<string[]>;
|
|
16
|
-
toolBarItem(commandId: string): Promise<TheiaToolbarItem | undefined>;
|
|
17
|
-
protected toolBarItemSelector(toolbarItemId?: string): string;
|
|
18
|
-
protected toCommandIdArray(items: TheiaToolbarItem[]): Promise<string[]>;
|
|
19
|
-
}
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
3
|
+
import { TheiaToolbarItem } from './theia-toolbar-item';
|
|
4
|
+
export declare class TheiaToolbar extends TheiaPageObject {
|
|
5
|
+
selector: string;
|
|
6
|
+
protected toolbarElementHandle(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
7
|
+
waitForVisible(): Promise<void>;
|
|
8
|
+
isShown(): Promise<boolean>;
|
|
9
|
+
show(): Promise<void>;
|
|
10
|
+
hide(): Promise<void>;
|
|
11
|
+
toggle(): Promise<void>;
|
|
12
|
+
waitUntilHidden(): Promise<void>;
|
|
13
|
+
waitUntilShown(): Promise<void>;
|
|
14
|
+
toolbarItems(): Promise<TheiaToolbarItem[]>;
|
|
15
|
+
toolbarItemIds(): Promise<string[]>;
|
|
16
|
+
toolBarItem(commandId: string): Promise<TheiaToolbarItem | undefined>;
|
|
17
|
+
protected toolBarItemSelector(toolbarItemId?: string): string;
|
|
18
|
+
protected toCommandIdArray(items: TheiaToolbarItem[]): Promise<string[]>;
|
|
19
|
+
}
|
|
20
20
|
//# sourceMappingURL=theia-toolbar.d.ts.map
|