@theia/playwright 1.48.1 → 1.48.2
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,122 +1,122 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import { expect, test } from '@playwright/test';
|
|
18
|
-
import { TheiaApp } from '../theia-app';
|
|
19
|
-
import { TheiaAppLoader } from '../theia-app-loader';
|
|
20
|
-
import { DefaultPreferences, PreferenceIds, TheiaPreferenceView } from '../theia-preference-view';
|
|
21
|
-
|
|
22
|
-
test.describe('Preference View', () => {
|
|
23
|
-
|
|
24
|
-
let app: TheiaApp;
|
|
25
|
-
|
|
26
|
-
test.beforeAll(async ({ playwright, browser }) => {
|
|
27
|
-
app = await TheiaAppLoader.load({ playwright, browser });
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test.afterAll(async () => {
|
|
31
|
-
await app.page.close();
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
test('should be visible and active after being opened', async () => {
|
|
35
|
-
const preferenceView = await app.openPreferences(TheiaPreferenceView);
|
|
36
|
-
expect(await preferenceView.isTabVisible()).toBe(true);
|
|
37
|
-
expect(await preferenceView.isDisplayed()).toBe(true);
|
|
38
|
-
expect(await preferenceView.isActive()).toBe(true);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
test('should be able to read, set, and reset String preferences', async () => {
|
|
42
|
-
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
43
|
-
const preferenceId = PreferenceIds.DiffEditor.MaxComputationTime;
|
|
44
|
-
|
|
45
|
-
await preferences.resetPreferenceById(preferenceId);
|
|
46
|
-
expect(await preferences.getStringPreferenceById(preferenceId)).toBe(DefaultPreferences.DiffEditor.MaxComputationTime);
|
|
47
|
-
|
|
48
|
-
await preferences.setStringPreferenceById(preferenceId, '8000');
|
|
49
|
-
await preferences.waitForModified(preferenceId);
|
|
50
|
-
expect(await preferences.getStringPreferenceById(preferenceId)).toBe('8000');
|
|
51
|
-
|
|
52
|
-
await preferences.resetPreferenceById(preferenceId);
|
|
53
|
-
expect(await preferences.getStringPreferenceById(preferenceId)).toBe(DefaultPreferences.DiffEditor.MaxComputationTime);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
test('should be able to read, set, and reset Boolean preferences', async () => {
|
|
57
|
-
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
58
|
-
const preferenceId = PreferenceIds.Explorer.AutoReveal;
|
|
59
|
-
|
|
60
|
-
await preferences.resetPreferenceById(preferenceId);
|
|
61
|
-
expect(await preferences.getBooleanPreferenceById(preferenceId)).toBe(DefaultPreferences.Explorer.AutoReveal.Enabled);
|
|
62
|
-
|
|
63
|
-
await preferences.setBooleanPreferenceById(preferenceId, false);
|
|
64
|
-
await preferences.waitForModified(preferenceId);
|
|
65
|
-
expect(await preferences.getBooleanPreferenceById(preferenceId)).toBe(false);
|
|
66
|
-
|
|
67
|
-
await preferences.resetPreferenceById(preferenceId);
|
|
68
|
-
expect(await preferences.getBooleanPreferenceById(preferenceId)).toBe(DefaultPreferences.Explorer.AutoReveal.Enabled);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
test('should be able to read, set, and reset Options preferences', async () => {
|
|
72
|
-
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
73
|
-
const preferenceId = PreferenceIds.Editor.RenderWhitespace;
|
|
74
|
-
|
|
75
|
-
await preferences.resetPreferenceById(preferenceId);
|
|
76
|
-
expect(await preferences.getOptionsPreferenceById(preferenceId)).toBe(DefaultPreferences.Editor.RenderWhitespace.Selection);
|
|
77
|
-
|
|
78
|
-
await preferences.setOptionsPreferenceById(preferenceId, DefaultPreferences.Editor.RenderWhitespace.Boundary);
|
|
79
|
-
await preferences.waitForModified(preferenceId);
|
|
80
|
-
expect(await preferences.getOptionsPreferenceById(preferenceId)).toBe(DefaultPreferences.Editor.RenderWhitespace.Boundary);
|
|
81
|
-
|
|
82
|
-
await preferences.resetPreferenceById(preferenceId);
|
|
83
|
-
expect(await preferences.getOptionsPreferenceById(preferenceId)).toBe(DefaultPreferences.Editor.RenderWhitespace.Selection);
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
test('should throw an error if we try to read, set, or reset a non-existing preference', async () => {
|
|
87
|
-
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
88
|
-
|
|
89
|
-
preferences.customTimeout = 500;
|
|
90
|
-
try {
|
|
91
|
-
await expect(preferences.getBooleanPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
92
|
-
await expect(preferences.setBooleanPreferenceById('not.a.real.preference', true)).rejects.toThrowError();
|
|
93
|
-
await expect(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
94
|
-
|
|
95
|
-
await expect(preferences.getStringPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
96
|
-
await expect(preferences.setStringPreferenceById('not.a.real.preference', 'a')).rejects.toThrowError();
|
|
97
|
-
await expect(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
98
|
-
|
|
99
|
-
await expect(preferences.getOptionsPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
100
|
-
await expect(preferences.setOptionsPreferenceById('not.a.real.preference', 'a')).rejects.toThrowError();
|
|
101
|
-
await expect(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
102
|
-
} finally {
|
|
103
|
-
preferences.customTimeout = undefined;
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
test('should throw an error if we try to read, or set a preference with the wrong type', async () => {
|
|
108
|
-
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
109
|
-
const stringPreference = PreferenceIds.DiffEditor.MaxComputationTime;
|
|
110
|
-
const booleanPreference = PreferenceIds.Explorer.AutoReveal;
|
|
111
|
-
|
|
112
|
-
preferences.customTimeout = 500;
|
|
113
|
-
try {
|
|
114
|
-
await expect(preferences.getBooleanPreferenceById(stringPreference)).rejects.toThrowError();
|
|
115
|
-
await expect(preferences.setBooleanPreferenceById(stringPreference, true)).rejects.toThrowError();
|
|
116
|
-
await expect(preferences.setStringPreferenceById(booleanPreference, 'true')).rejects.toThrowError();
|
|
117
|
-
await expect(preferences.setOptionsPreferenceById(booleanPreference, 'true')).rejects.toThrowError();
|
|
118
|
-
} finally {
|
|
119
|
-
preferences.customTimeout = undefined;
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
});
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { expect, test } from '@playwright/test';
|
|
18
|
+
import { TheiaApp } from '../theia-app';
|
|
19
|
+
import { TheiaAppLoader } from '../theia-app-loader';
|
|
20
|
+
import { DefaultPreferences, PreferenceIds, TheiaPreferenceView } from '../theia-preference-view';
|
|
21
|
+
|
|
22
|
+
test.describe('Preference View', () => {
|
|
23
|
+
|
|
24
|
+
let app: TheiaApp;
|
|
25
|
+
|
|
26
|
+
test.beforeAll(async ({ playwright, browser }) => {
|
|
27
|
+
app = await TheiaAppLoader.load({ playwright, browser });
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test.afterAll(async () => {
|
|
31
|
+
await app.page.close();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
test('should be visible and active after being opened', async () => {
|
|
35
|
+
const preferenceView = await app.openPreferences(TheiaPreferenceView);
|
|
36
|
+
expect(await preferenceView.isTabVisible()).toBe(true);
|
|
37
|
+
expect(await preferenceView.isDisplayed()).toBe(true);
|
|
38
|
+
expect(await preferenceView.isActive()).toBe(true);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test('should be able to read, set, and reset String preferences', async () => {
|
|
42
|
+
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
43
|
+
const preferenceId = PreferenceIds.DiffEditor.MaxComputationTime;
|
|
44
|
+
|
|
45
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
46
|
+
expect(await preferences.getStringPreferenceById(preferenceId)).toBe(DefaultPreferences.DiffEditor.MaxComputationTime);
|
|
47
|
+
|
|
48
|
+
await preferences.setStringPreferenceById(preferenceId, '8000');
|
|
49
|
+
await preferences.waitForModified(preferenceId);
|
|
50
|
+
expect(await preferences.getStringPreferenceById(preferenceId)).toBe('8000');
|
|
51
|
+
|
|
52
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
53
|
+
expect(await preferences.getStringPreferenceById(preferenceId)).toBe(DefaultPreferences.DiffEditor.MaxComputationTime);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
test('should be able to read, set, and reset Boolean preferences', async () => {
|
|
57
|
+
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
58
|
+
const preferenceId = PreferenceIds.Explorer.AutoReveal;
|
|
59
|
+
|
|
60
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
61
|
+
expect(await preferences.getBooleanPreferenceById(preferenceId)).toBe(DefaultPreferences.Explorer.AutoReveal.Enabled);
|
|
62
|
+
|
|
63
|
+
await preferences.setBooleanPreferenceById(preferenceId, false);
|
|
64
|
+
await preferences.waitForModified(preferenceId);
|
|
65
|
+
expect(await preferences.getBooleanPreferenceById(preferenceId)).toBe(false);
|
|
66
|
+
|
|
67
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
68
|
+
expect(await preferences.getBooleanPreferenceById(preferenceId)).toBe(DefaultPreferences.Explorer.AutoReveal.Enabled);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test('should be able to read, set, and reset Options preferences', async () => {
|
|
72
|
+
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
73
|
+
const preferenceId = PreferenceIds.Editor.RenderWhitespace;
|
|
74
|
+
|
|
75
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
76
|
+
expect(await preferences.getOptionsPreferenceById(preferenceId)).toBe(DefaultPreferences.Editor.RenderWhitespace.Selection);
|
|
77
|
+
|
|
78
|
+
await preferences.setOptionsPreferenceById(preferenceId, DefaultPreferences.Editor.RenderWhitespace.Boundary);
|
|
79
|
+
await preferences.waitForModified(preferenceId);
|
|
80
|
+
expect(await preferences.getOptionsPreferenceById(preferenceId)).toBe(DefaultPreferences.Editor.RenderWhitespace.Boundary);
|
|
81
|
+
|
|
82
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
83
|
+
expect(await preferences.getOptionsPreferenceById(preferenceId)).toBe(DefaultPreferences.Editor.RenderWhitespace.Selection);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
test('should throw an error if we try to read, set, or reset a non-existing preference', async () => {
|
|
87
|
+
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
88
|
+
|
|
89
|
+
preferences.customTimeout = 500;
|
|
90
|
+
try {
|
|
91
|
+
await expect(preferences.getBooleanPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
92
|
+
await expect(preferences.setBooleanPreferenceById('not.a.real.preference', true)).rejects.toThrowError();
|
|
93
|
+
await expect(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
94
|
+
|
|
95
|
+
await expect(preferences.getStringPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
96
|
+
await expect(preferences.setStringPreferenceById('not.a.real.preference', 'a')).rejects.toThrowError();
|
|
97
|
+
await expect(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
98
|
+
|
|
99
|
+
await expect(preferences.getOptionsPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
100
|
+
await expect(preferences.setOptionsPreferenceById('not.a.real.preference', 'a')).rejects.toThrowError();
|
|
101
|
+
await expect(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
102
|
+
} finally {
|
|
103
|
+
preferences.customTimeout = undefined;
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
test('should throw an error if we try to read, or set a preference with the wrong type', async () => {
|
|
108
|
+
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
109
|
+
const stringPreference = PreferenceIds.DiffEditor.MaxComputationTime;
|
|
110
|
+
const booleanPreference = PreferenceIds.Explorer.AutoReveal;
|
|
111
|
+
|
|
112
|
+
preferences.customTimeout = 500;
|
|
113
|
+
try {
|
|
114
|
+
await expect(preferences.getBooleanPreferenceById(stringPreference)).rejects.toThrowError();
|
|
115
|
+
await expect(preferences.setBooleanPreferenceById(stringPreference, true)).rejects.toThrowError();
|
|
116
|
+
await expect(preferences.setStringPreferenceById(booleanPreference, 'true')).rejects.toThrowError();
|
|
117
|
+
await expect(preferences.setOptionsPreferenceById(booleanPreference, 'true')).rejects.toThrowError();
|
|
118
|
+
} finally {
|
|
119
|
+
preferences.customTimeout = undefined;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
});
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import { expect, test } from '@playwright/test';
|
|
18
|
-
import { TheiaApp } from '../theia-app';
|
|
19
|
-
import { TheiaAppLoader } from '../theia-app-loader';
|
|
20
|
-
import { TheiaProblemsView } from '../theia-problem-view';
|
|
21
|
-
|
|
22
|
-
test.describe('Theia Problems View', () => {
|
|
23
|
-
|
|
24
|
-
let app: TheiaApp;
|
|
25
|
-
|
|
26
|
-
test.beforeAll(async ({ playwright, browser }) => {
|
|
27
|
-
app = await TheiaAppLoader.load({ playwright, browser });
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test.afterAll(async () => {
|
|
31
|
-
await app.page.close();
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
test('should be visible and active after being opened', async () => {
|
|
35
|
-
const problemsView = await app.openView(TheiaProblemsView);
|
|
36
|
-
expect(await problemsView.isTabVisible()).toBe(true);
|
|
37
|
-
expect(await problemsView.isDisplayed()).toBe(true);
|
|
38
|
-
expect(await problemsView.isActive()).toBe(true);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
test("should be opened at the bottom and have the title 'Problems'", async () => {
|
|
42
|
-
const problemsView = await app.openView(TheiaProblemsView);
|
|
43
|
-
expect(await problemsView.isInSidePanel()).toBe(false);
|
|
44
|
-
expect(await problemsView.side()).toBe('bottom');
|
|
45
|
-
expect(await problemsView.title()).toBe('Problems');
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
test('should be closable', async () => {
|
|
49
|
-
const problemsView = await app.openView(TheiaProblemsView);
|
|
50
|
-
expect(await problemsView.isClosable()).toBe(true);
|
|
51
|
-
|
|
52
|
-
await problemsView.close();
|
|
53
|
-
expect(await problemsView.isTabVisible()).toBe(false);
|
|
54
|
-
expect(await problemsView.isDisplayed()).toBe(false);
|
|
55
|
-
expect(await problemsView.isActive()).toBe(false);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
test("should not throw an error if 'close' is called twice", async () => {
|
|
59
|
-
const problemsView = await app.openView(TheiaProblemsView);
|
|
60
|
-
await problemsView.close();
|
|
61
|
-
await problemsView.close();
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
});
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { expect, test } from '@playwright/test';
|
|
18
|
+
import { TheiaApp } from '../theia-app';
|
|
19
|
+
import { TheiaAppLoader } from '../theia-app-loader';
|
|
20
|
+
import { TheiaProblemsView } from '../theia-problem-view';
|
|
21
|
+
|
|
22
|
+
test.describe('Theia Problems View', () => {
|
|
23
|
+
|
|
24
|
+
let app: TheiaApp;
|
|
25
|
+
|
|
26
|
+
test.beforeAll(async ({ playwright, browser }) => {
|
|
27
|
+
app = await TheiaAppLoader.load({ playwright, browser });
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test.afterAll(async () => {
|
|
31
|
+
await app.page.close();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
test('should be visible and active after being opened', async () => {
|
|
35
|
+
const problemsView = await app.openView(TheiaProblemsView);
|
|
36
|
+
expect(await problemsView.isTabVisible()).toBe(true);
|
|
37
|
+
expect(await problemsView.isDisplayed()).toBe(true);
|
|
38
|
+
expect(await problemsView.isActive()).toBe(true);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test("should be opened at the bottom and have the title 'Problems'", async () => {
|
|
42
|
+
const problemsView = await app.openView(TheiaProblemsView);
|
|
43
|
+
expect(await problemsView.isInSidePanel()).toBe(false);
|
|
44
|
+
expect(await problemsView.side()).toBe('bottom');
|
|
45
|
+
expect(await problemsView.title()).toBe('Problems');
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
test('should be closable', async () => {
|
|
49
|
+
const problemsView = await app.openView(TheiaProblemsView);
|
|
50
|
+
expect(await problemsView.isClosable()).toBe(true);
|
|
51
|
+
|
|
52
|
+
await problemsView.close();
|
|
53
|
+
expect(await problemsView.isTabVisible()).toBe(false);
|
|
54
|
+
expect(await problemsView.isDisplayed()).toBe(false);
|
|
55
|
+
expect(await problemsView.isActive()).toBe(false);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
test("should not throw an error if 'close' is called twice", async () => {
|
|
59
|
+
const problemsView = await app.openView(TheiaProblemsView);
|
|
60
|
+
await problemsView.close();
|
|
61
|
+
await problemsView.close();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
});
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import { expect, test } from '@playwright/test';
|
|
18
|
-
import { TheiaAppLoader } from '../theia-app-loader';
|
|
19
|
-
import { TheiaAboutDialog } from '../theia-about-dialog';
|
|
20
|
-
import { TheiaApp } from '../theia-app';
|
|
21
|
-
import { TheiaExplorerView } from '../theia-explorer-view';
|
|
22
|
-
import { TheiaNotificationIndicator } from '../theia-notification-indicator';
|
|
23
|
-
import { TheiaNotificationOverlay } from '../theia-notification-overlay';
|
|
24
|
-
import { TheiaQuickCommandPalette } from '../theia-quick-command-palette';
|
|
25
|
-
|
|
26
|
-
test.describe('Theia Quick Command', () => {
|
|
27
|
-
|
|
28
|
-
let app: TheiaApp;
|
|
29
|
-
let quickCommand: TheiaQuickCommandPalette;
|
|
30
|
-
|
|
31
|
-
test.beforeAll(async ({ playwright, browser }) => {
|
|
32
|
-
app = await TheiaAppLoader.load({ playwright, browser });
|
|
33
|
-
quickCommand = app.quickCommandPalette;
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
test.afterAll(async () => {
|
|
37
|
-
await app.page.close();
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
test('should show quick command palette', async () => {
|
|
41
|
-
await quickCommand.open();
|
|
42
|
-
expect(await quickCommand.isOpen()).toBe(true);
|
|
43
|
-
await quickCommand.hide();
|
|
44
|
-
expect(await quickCommand.isOpen()).toBe(false);
|
|
45
|
-
await quickCommand.open();
|
|
46
|
-
expect(await quickCommand.isOpen()).toBe(true);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
test('should trigger \'About\' command after typing', async () => {
|
|
50
|
-
await quickCommand.type('About');
|
|
51
|
-
await quickCommand.trigger('About');
|
|
52
|
-
expect(await quickCommand.isOpen()).toBe(false);
|
|
53
|
-
const aboutDialog = new TheiaAboutDialog(app);
|
|
54
|
-
expect(await aboutDialog.isVisible()).toBe(true);
|
|
55
|
-
await aboutDialog.close();
|
|
56
|
-
expect(await aboutDialog.isVisible()).toBe(false);
|
|
57
|
-
|
|
58
|
-
await quickCommand.type('Select All');
|
|
59
|
-
await quickCommand.trigger('Select All');
|
|
60
|
-
expect(await quickCommand.isOpen()).toBe(false);
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
test('should trigger \'Toggle Explorer View\' command after typing', async () => {
|
|
64
|
-
await quickCommand.type('Toggle Explorer');
|
|
65
|
-
await quickCommand.trigger('Toggle Explorer View');
|
|
66
|
-
expect(await quickCommand.isOpen()).toBe(false);
|
|
67
|
-
const explorerView = new TheiaExplorerView(app);
|
|
68
|
-
expect(await explorerView.isDisplayed()).toBe(true);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
test('should trigger \'Quick Input: Test Positive Integer\' command by confirming via Enter', async () => {
|
|
72
|
-
await quickCommand.type('Test Positive', true);
|
|
73
|
-
expect(await quickCommand.isOpen()).toBe(true);
|
|
74
|
-
await quickCommand.type('6', true);
|
|
75
|
-
const notificationIndicator = new TheiaNotificationIndicator(app);
|
|
76
|
-
const notification = new TheiaNotificationOverlay(app, notificationIndicator);
|
|
77
|
-
expect(await notification.isEntryVisible('Positive Integer: 6')).toBe(true);
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
});
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { expect, test } from '@playwright/test';
|
|
18
|
+
import { TheiaAppLoader } from '../theia-app-loader';
|
|
19
|
+
import { TheiaAboutDialog } from '../theia-about-dialog';
|
|
20
|
+
import { TheiaApp } from '../theia-app';
|
|
21
|
+
import { TheiaExplorerView } from '../theia-explorer-view';
|
|
22
|
+
import { TheiaNotificationIndicator } from '../theia-notification-indicator';
|
|
23
|
+
import { TheiaNotificationOverlay } from '../theia-notification-overlay';
|
|
24
|
+
import { TheiaQuickCommandPalette } from '../theia-quick-command-palette';
|
|
25
|
+
|
|
26
|
+
test.describe('Theia Quick Command', () => {
|
|
27
|
+
|
|
28
|
+
let app: TheiaApp;
|
|
29
|
+
let quickCommand: TheiaQuickCommandPalette;
|
|
30
|
+
|
|
31
|
+
test.beforeAll(async ({ playwright, browser }) => {
|
|
32
|
+
app = await TheiaAppLoader.load({ playwright, browser });
|
|
33
|
+
quickCommand = app.quickCommandPalette;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test.afterAll(async () => {
|
|
37
|
+
await app.page.close();
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test('should show quick command palette', async () => {
|
|
41
|
+
await quickCommand.open();
|
|
42
|
+
expect(await quickCommand.isOpen()).toBe(true);
|
|
43
|
+
await quickCommand.hide();
|
|
44
|
+
expect(await quickCommand.isOpen()).toBe(false);
|
|
45
|
+
await quickCommand.open();
|
|
46
|
+
expect(await quickCommand.isOpen()).toBe(true);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
test('should trigger \'About\' command after typing', async () => {
|
|
50
|
+
await quickCommand.type('About');
|
|
51
|
+
await quickCommand.trigger('About');
|
|
52
|
+
expect(await quickCommand.isOpen()).toBe(false);
|
|
53
|
+
const aboutDialog = new TheiaAboutDialog(app);
|
|
54
|
+
expect(await aboutDialog.isVisible()).toBe(true);
|
|
55
|
+
await aboutDialog.close();
|
|
56
|
+
expect(await aboutDialog.isVisible()).toBe(false);
|
|
57
|
+
|
|
58
|
+
await quickCommand.type('Select All');
|
|
59
|
+
await quickCommand.trigger('Select All');
|
|
60
|
+
expect(await quickCommand.isOpen()).toBe(false);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('should trigger \'Toggle Explorer View\' command after typing', async () => {
|
|
64
|
+
await quickCommand.type('Toggle Explorer');
|
|
65
|
+
await quickCommand.trigger('Toggle Explorer View');
|
|
66
|
+
expect(await quickCommand.isOpen()).toBe(false);
|
|
67
|
+
const explorerView = new TheiaExplorerView(app);
|
|
68
|
+
expect(await explorerView.isDisplayed()).toBe(true);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test('should trigger \'Quick Input: Test Positive Integer\' command by confirming via Enter', async () => {
|
|
72
|
+
await quickCommand.type('Test Positive', true);
|
|
73
|
+
expect(await quickCommand.isOpen()).toBe(true);
|
|
74
|
+
await quickCommand.type('6', true);
|
|
75
|
+
const notificationIndicator = new TheiaNotificationIndicator(app);
|
|
76
|
+
const notification = new TheiaNotificationOverlay(app, notificationIndicator);
|
|
77
|
+
expect(await notification.isEntryVisible('Positive Integer: 6')).toBe(true);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
});
|