@theia/playwright 1.25.0 → 1.26.0-next.10
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 +1 -0
- package/lib/tests/theia-preference-view.test.js +34 -13
- package/lib/tests/theia-preference-view.test.js.map +1 -1
- package/lib/tests/theia-text-editor.test.js +6 -1
- package/lib/tests/theia-text-editor.test.js.map +1 -1
- package/lib/theia-preference-view.d.ts +36 -10
- package/lib/theia-preference-view.d.ts.map +1 -1
- package/lib/theia-preference-view.js +72 -67
- package/lib/theia-preference-view.js.map +1 -1
- package/package.json +2 -2
- package/src/tests/theia-preference-view.test.ts +38 -13
- package/src/tests/theia-text-editor.test.ts +7 -1
- package/src/theia-preference-view.ts +78 -72
package/README.md
CHANGED
|
@@ -33,6 +33,7 @@ It is [extensible](./docs/EXTENSIBILITY.md) so you can add dedicated page object
|
|
|
33
33
|
|
|
34
34
|
- [Getting Started](./docs/GETTING_STARTED.md)
|
|
35
35
|
- [Extensibility](./docs/EXTENSIBILITY.md)
|
|
36
|
+
- [Theia 🎭 Playwright Template](https://github.com/eclipse-theia/theia-playwright-template)
|
|
36
37
|
- [Building and Developing Theia 🎭 Playwright](./docs/DEVELOPING.md)
|
|
37
38
|
|
|
38
39
|
## Additional Information
|
|
@@ -33,35 +33,49 @@ theia_fixture_1.default.describe('Preference View', () => {
|
|
|
33
33
|
(0, theia_fixture_1.default)('should be able to read, set, and reset String preferences', async () => {
|
|
34
34
|
const preferences = await app.openPreferences(theia_preference_view_1.TheiaPreferenceView);
|
|
35
35
|
const preferenceId = theia_preference_view_1.PreferenceIds.DiffEditor.MaxComputationTime;
|
|
36
|
-
await preferences.
|
|
36
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
37
37
|
(0, test_1.expect)(await preferences.getStringPreferenceById(preferenceId)).toBe(theia_preference_view_1.DefaultPreferences.DiffEditor.MaxComputationTime);
|
|
38
38
|
await preferences.setStringPreferenceById(preferenceId, '8000');
|
|
39
39
|
await preferences.waitForModified(preferenceId);
|
|
40
40
|
(0, test_1.expect)(await preferences.getStringPreferenceById(preferenceId)).toBe('8000');
|
|
41
|
-
await preferences.
|
|
41
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
42
42
|
(0, test_1.expect)(await preferences.getStringPreferenceById(preferenceId)).toBe(theia_preference_view_1.DefaultPreferences.DiffEditor.MaxComputationTime);
|
|
43
43
|
});
|
|
44
44
|
(0, theia_fixture_1.default)('should be able to read, set, and reset Boolean preferences', async () => {
|
|
45
45
|
const preferences = await app.openPreferences(theia_preference_view_1.TheiaPreferenceView);
|
|
46
46
|
const preferenceId = theia_preference_view_1.PreferenceIds.Explorer.AutoReveal;
|
|
47
|
-
await preferences.
|
|
47
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
48
48
|
(0, test_1.expect)(await preferences.getBooleanPreferenceById(preferenceId)).toBe(theia_preference_view_1.DefaultPreferences.Explorer.AutoReveal.Enabled);
|
|
49
49
|
await preferences.setBooleanPreferenceById(preferenceId, false);
|
|
50
50
|
await preferences.waitForModified(preferenceId);
|
|
51
51
|
(0, test_1.expect)(await preferences.getBooleanPreferenceById(preferenceId)).toBe(false);
|
|
52
|
-
await preferences.
|
|
52
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
53
53
|
(0, test_1.expect)(await preferences.getBooleanPreferenceById(preferenceId)).toBe(theia_preference_view_1.DefaultPreferences.Explorer.AutoReveal.Enabled);
|
|
54
54
|
});
|
|
55
|
+
(0, theia_fixture_1.default)('should be able to read, set, and reset Options preferences', async () => {
|
|
56
|
+
const preferences = await app.openPreferences(theia_preference_view_1.TheiaPreferenceView);
|
|
57
|
+
const preferenceId = theia_preference_view_1.PreferenceIds.Editor.RenderWhitespace;
|
|
58
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
59
|
+
(0, test_1.expect)(await preferences.getOptionsPreferenceById(preferenceId)).toBe(theia_preference_view_1.DefaultPreferences.Editor.RenderWhitespace.Selection);
|
|
60
|
+
await preferences.setOptionsPreferenceById(preferenceId, theia_preference_view_1.DefaultPreferences.Editor.RenderWhitespace.Boundary);
|
|
61
|
+
await preferences.waitForModified(preferenceId);
|
|
62
|
+
(0, test_1.expect)(await preferences.getOptionsPreferenceById(preferenceId)).toBe(theia_preference_view_1.DefaultPreferences.Editor.RenderWhitespace.Boundary);
|
|
63
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
64
|
+
(0, test_1.expect)(await preferences.getOptionsPreferenceById(preferenceId)).toBe(theia_preference_view_1.DefaultPreferences.Editor.RenderWhitespace.Selection);
|
|
65
|
+
});
|
|
55
66
|
(0, theia_fixture_1.default)('should throw an error if we try to read, set, or reset a non-existing preference', async () => {
|
|
56
67
|
const preferences = await app.openPreferences(theia_preference_view_1.TheiaPreferenceView);
|
|
57
68
|
preferences.customTimeout = 500;
|
|
58
69
|
try {
|
|
59
|
-
await (0, test_1.expect)(preferences.getBooleanPreferenceById('
|
|
60
|
-
await (0, test_1.expect)(preferences.setBooleanPreferenceById('
|
|
61
|
-
await (0, test_1.expect)(preferences.
|
|
62
|
-
await (0, test_1.expect)(preferences.getStringPreferenceById('
|
|
63
|
-
await (0, test_1.expect)(preferences.setStringPreferenceById('
|
|
64
|
-
await (0, test_1.expect)(preferences.
|
|
70
|
+
await (0, test_1.expect)(preferences.getBooleanPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
71
|
+
await (0, test_1.expect)(preferences.setBooleanPreferenceById('not.a.real.preference', true)).rejects.toThrowError();
|
|
72
|
+
await (0, test_1.expect)(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
73
|
+
await (0, test_1.expect)(preferences.getStringPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
74
|
+
await (0, test_1.expect)(preferences.setStringPreferenceById('not.a.real.preference', 'a')).rejects.toThrowError();
|
|
75
|
+
await (0, test_1.expect)(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
76
|
+
await (0, test_1.expect)(preferences.getOptionsPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
77
|
+
await (0, test_1.expect)(preferences.setOptionsPreferenceById('not.a.real.preference', 'a')).rejects.toThrowError();
|
|
78
|
+
await (0, test_1.expect)(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
65
79
|
}
|
|
66
80
|
finally {
|
|
67
81
|
preferences.customTimeout = undefined;
|
|
@@ -71,9 +85,16 @@ theia_fixture_1.default.describe('Preference View', () => {
|
|
|
71
85
|
const preferences = await app.openPreferences(theia_preference_view_1.TheiaPreferenceView);
|
|
72
86
|
const stringPreference = theia_preference_view_1.PreferenceIds.DiffEditor.MaxComputationTime;
|
|
73
87
|
const booleanPreference = theia_preference_view_1.PreferenceIds.Explorer.AutoReveal;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
88
|
+
preferences.customTimeout = 500;
|
|
89
|
+
try {
|
|
90
|
+
await (0, test_1.expect)(preferences.getBooleanPreferenceById(stringPreference)).rejects.toThrowError();
|
|
91
|
+
await (0, test_1.expect)(preferences.setBooleanPreferenceById(stringPreference, true)).rejects.toThrowError();
|
|
92
|
+
await (0, test_1.expect)(preferences.setStringPreferenceById(booleanPreference, 'true')).rejects.toThrowError();
|
|
93
|
+
await (0, test_1.expect)(preferences.setOptionsPreferenceById(booleanPreference, 'true')).rejects.toThrowError();
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
preferences.customTimeout = undefined;
|
|
97
|
+
}
|
|
77
98
|
});
|
|
78
99
|
});
|
|
79
100
|
//# sourceMappingURL=theia-preference-view.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theia-preference-view.test.js","sourceRoot":"","sources":["../../src/tests/theia-preference-view.test.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;AAEhF,2CAA0C;AAC1C,4CAAwC;AACxC,oEAAkG;AAClG,4DAAsD;AAEtD,IAAI,GAAa,CAAC;AAElB,uBAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAElC,uBAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACtB,GAAG,GAAG,MAAM,oBAAQ,CAAC,IAAI,CAAC,oBAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAA,uBAAI,EAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,2CAAmB,CAAC,CAAC;QACtE,IAAA,aAAM,EAAC,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAA,aAAM,EAAC,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAA,aAAM,EAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAA,uBAAI,EAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,2CAAmB,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,qCAAa,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAEjE,MAAM,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"theia-preference-view.test.js","sourceRoot":"","sources":["../../src/tests/theia-preference-view.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const test_1 = require("@playwright/test");
|
|
19
|
+
const theia_preference_view_1 = require("../theia-preference-view");
|
|
19
20
|
const theia_app_1 = require("../theia-app");
|
|
20
21
|
const theia_text_editor_1 = require("../theia-text-editor");
|
|
21
22
|
const theia_workspace_1 = require("../theia-workspace");
|
|
@@ -25,6 +26,10 @@ theia_fixture_1.default.describe('Theia Text Editor', () => {
|
|
|
25
26
|
theia_fixture_1.default.beforeAll(async () => {
|
|
26
27
|
const ws = new theia_workspace_1.TheiaWorkspace(['src/tests/resources/sample-files1']);
|
|
27
28
|
app = await theia_app_1.TheiaApp.load(theia_fixture_1.page, ws);
|
|
29
|
+
// set auto-save preference to off
|
|
30
|
+
const preferenceView = await app.openPreferences(theia_preference_view_1.TheiaPreferenceView);
|
|
31
|
+
await preferenceView.setOptionsPreferenceById(theia_preference_view_1.PreferenceIds.Editor.AutoSave, theia_preference_view_1.DefaultPreferences.Editor.AutoSave.Off);
|
|
32
|
+
await preferenceView.close();
|
|
28
33
|
});
|
|
29
34
|
(0, theia_fixture_1.default)('should be visible and active after opening "sample.txt"', async () => {
|
|
30
35
|
const sampleTextEditor = await app.openEditor('sample.txt', theia_text_editor_1.TheiaTextEditor);
|
|
@@ -137,7 +142,7 @@ theia_fixture_1.default.describe('Theia Text Editor', () => {
|
|
|
137
142
|
(0, test_1.expect)(await sampleTextEditor.isDirty()).toBe(true);
|
|
138
143
|
await sampleTextEditor.saveAndClose();
|
|
139
144
|
});
|
|
140
|
-
theia_fixture_1.default
|
|
145
|
+
(0, theia_fixture_1.default)('should close without saving', async () => {
|
|
141
146
|
const sampleTextEditor = await app.openEditor('sample.txt', theia_text_editor_1.TheiaTextEditor);
|
|
142
147
|
await sampleTextEditor.replaceLineWithLineNumber('change again', 1);
|
|
143
148
|
(0, test_1.expect)(await sampleTextEditor.isDirty()).toBe(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theia-text-editor.test.js","sourceRoot":"","sources":["../../src/tests/theia-text-editor.test.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;AAEhF,2CAA0C;AAC1C,4CAAwC;AACxC,4DAAuD;AACvD,wDAAoD;AACpD,4DAAsD;AAEtD,IAAI,GAAa,CAAC;AAElB,uBAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAEpC,uBAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,EAAE,GAAG,IAAI,gCAAc,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC;QACrE,GAAG,GAAG,MAAM,oBAAQ,CAAC,IAAI,CAAC,oBAAI,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"theia-text-editor.test.js","sourceRoot":"","sources":["../../src/tests/theia-text-editor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { TheiaApp } from './theia-app';
|
|
2
2
|
import { TheiaView } from './theia-view';
|
|
3
3
|
export declare const PreferenceIds: {
|
|
4
|
+
Editor: {
|
|
5
|
+
AutoSave: string;
|
|
6
|
+
RenderWhitespace: string;
|
|
7
|
+
};
|
|
4
8
|
Explorer: {
|
|
5
9
|
AutoReveal: string;
|
|
6
10
|
};
|
|
@@ -9,6 +13,21 @@ export declare const PreferenceIds: {
|
|
|
9
13
|
};
|
|
10
14
|
};
|
|
11
15
|
export declare const DefaultPreferences: {
|
|
16
|
+
Editor: {
|
|
17
|
+
AutoSave: {
|
|
18
|
+
Off: string;
|
|
19
|
+
AfterDelay: string;
|
|
20
|
+
OnFocusChange: string;
|
|
21
|
+
OnWindowChange: string;
|
|
22
|
+
};
|
|
23
|
+
RenderWhitespace: {
|
|
24
|
+
None: string;
|
|
25
|
+
Boundary: string;
|
|
26
|
+
Selection: string;
|
|
27
|
+
Trailing: string;
|
|
28
|
+
All: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
12
31
|
Explorer: {
|
|
13
32
|
AutoReveal: {
|
|
14
33
|
Enabled: boolean;
|
|
@@ -24,28 +43,35 @@ export declare enum TheiaPreferenceScope {
|
|
|
24
43
|
}
|
|
25
44
|
export declare class TheiaPreferenceView extends TheiaView {
|
|
26
45
|
customTimeout?: number;
|
|
46
|
+
protected modificationIndicator: string;
|
|
47
|
+
protected optionSelectLabel: string;
|
|
48
|
+
protected optionSelectDropdown: string;
|
|
49
|
+
protected optionSelectDropdownValue: string;
|
|
27
50
|
constructor(app: TheiaApp);
|
|
28
51
|
open(preferenceScope?: TheiaPreferenceScope): Promise<TheiaView>;
|
|
29
52
|
protected getScopeSelector(scope: TheiaPreferenceScope): string;
|
|
30
53
|
openPreferenceScope(scope: TheiaPreferenceScope): Promise<void>;
|
|
31
|
-
getBooleanPreferenceById(preferenceId: string): Promise<boolean>;
|
|
32
54
|
getBooleanPreferenceByPath(sectionTitle: string, name: string): Promise<boolean>;
|
|
33
|
-
|
|
55
|
+
getBooleanPreferenceById(preferenceId: string): Promise<boolean>;
|
|
34
56
|
setBooleanPreferenceByPath(sectionTitle: string, name: string, value: boolean): Promise<void>;
|
|
35
|
-
|
|
57
|
+
setBooleanPreferenceById(preferenceId: string, value: boolean): Promise<void>;
|
|
36
58
|
getStringPreferenceByPath(sectionTitle: string, name: string): Promise<string>;
|
|
37
|
-
|
|
59
|
+
getStringPreferenceById(preferenceId: string): Promise<string>;
|
|
38
60
|
setStringPreferenceByPath(sectionTitle: string, name: string, value: string): Promise<void>;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
61
|
+
setStringPreferenceById(preferenceId: string, value: string): Promise<void>;
|
|
62
|
+
getOptionsPreferenceByPath(sectionTitle: string, name: string): Promise<string>;
|
|
63
|
+
getOptionsPreferenceById(preferenceId: string): Promise<string>;
|
|
64
|
+
setOptionsPreferenceByPath(sectionTitle: string, name: string, value: string): Promise<void>;
|
|
65
|
+
setOptionsPreferenceById(preferenceId: string, value: string): Promise<void>;
|
|
66
|
+
resetPreferenceByPath(sectionTitle: string, name: string): Promise<void>;
|
|
67
|
+
resetPreferenceById(preferenceId: string): Promise<void>;
|
|
44
68
|
private findPreferenceId;
|
|
45
69
|
private findPreferenceEditorById;
|
|
46
70
|
private getPreferenceSelector;
|
|
47
71
|
private getPreferenceEditorSelector;
|
|
48
|
-
private getPreferenceGutterSelector;
|
|
49
72
|
private findPreferenceResetButton;
|
|
73
|
+
waitForModified(preferenceId: string): Promise<void>;
|
|
74
|
+
waitForUnmodified(preferenceId: string): Promise<void>;
|
|
75
|
+
private getPreferenceGutterSelector;
|
|
50
76
|
}
|
|
51
77
|
//# sourceMappingURL=theia-preference-view.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theia-preference-view.d.ts","sourceRoot":"","sources":["../src/theia-preference-view.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"theia-preference-view.d.ts","sourceRoot":"","sources":["../src/theia-preference-view.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,eAAO,MAAM,aAAa;;;;;;;;;;;CAWzB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;CAwB9B,CAAC;AAEF,oBAAY,oBAAoB;IAC5B,IAAI,SAAS;IACb,SAAS,cAAc;CAC1B;AAED,qBAAa,mBAAoB,SAAQ,SAAS;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,qBAAqB,SAA8B;IAC7D,SAAS,CAAC,iBAAiB,SAAmC;IAC9D,SAAS,CAAC,oBAAoB,SAAsC;IACpE,SAAS,CAAC,yBAAyB,SAA0C;gBAEjE,GAAG,EAAE,QAAQ;IAIV,IAAI,CAAC,eAAe,uBAAiC,GAAG,OAAO,CAAC,SAAS,CAAC;IAOzF,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;IAIzD,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhF,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhE,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7F,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7E,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9E,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9D,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3F,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3E,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/E,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5F,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5E,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxE,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAQhD,gBAAgB;YAYhB,wBAAwB;IAStC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,2BAA2B;YAIrB,yBAAyB;IAejC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,OAAO,CAAC,2BAA2B;CAGtC"}
|
|
@@ -22,6 +22,10 @@ const TheiaSettingsViewData = {
|
|
|
22
22
|
viewSelector: '#settings_widget'
|
|
23
23
|
};
|
|
24
24
|
exports.PreferenceIds = {
|
|
25
|
+
Editor: {
|
|
26
|
+
AutoSave: 'files.autoSave',
|
|
27
|
+
RenderWhitespace: 'editor.renderWhitespace'
|
|
28
|
+
},
|
|
25
29
|
Explorer: {
|
|
26
30
|
AutoReveal: 'explorer.autoReveal'
|
|
27
31
|
},
|
|
@@ -30,6 +34,21 @@ exports.PreferenceIds = {
|
|
|
30
34
|
}
|
|
31
35
|
};
|
|
32
36
|
exports.DefaultPreferences = {
|
|
37
|
+
Editor: {
|
|
38
|
+
AutoSave: {
|
|
39
|
+
Off: 'off',
|
|
40
|
+
AfterDelay: 'afterDelay',
|
|
41
|
+
OnFocusChange: 'onFocusChange',
|
|
42
|
+
OnWindowChange: 'onWindowChange'
|
|
43
|
+
},
|
|
44
|
+
RenderWhitespace: {
|
|
45
|
+
None: 'none',
|
|
46
|
+
Boundary: 'boundary',
|
|
47
|
+
Selection: 'selection',
|
|
48
|
+
Trailing: 'trailing',
|
|
49
|
+
All: 'all'
|
|
50
|
+
}
|
|
51
|
+
},
|
|
33
52
|
Explorer: {
|
|
34
53
|
AutoReveal: {
|
|
35
54
|
Enabled: true
|
|
@@ -47,6 +66,10 @@ var TheiaPreferenceScope;
|
|
|
47
66
|
class TheiaPreferenceView extends theia_view_1.TheiaView {
|
|
48
67
|
constructor(app) {
|
|
49
68
|
super(TheiaSettingsViewData, app);
|
|
69
|
+
this.modificationIndicator = '.theia-mod-item-modified';
|
|
70
|
+
this.optionSelectLabel = '.theia-select-component-label';
|
|
71
|
+
this.optionSelectDropdown = '.theia-select-component-dropdown';
|
|
72
|
+
this.optionSelectDropdownValue = '.theia-select-component-option-value';
|
|
50
73
|
}
|
|
51
74
|
async open(preferenceScope = TheiaPreferenceScope.Workspace) {
|
|
52
75
|
await this.app.quickCommandPalette.trigger('Preferences: Open Settings (UI)');
|
|
@@ -62,86 +85,66 @@ class TheiaPreferenceView extends theia_view_1.TheiaView {
|
|
|
62
85
|
const scopeTab = await this.page.waitForSelector(this.getScopeSelector(scope));
|
|
63
86
|
await scopeTab.click();
|
|
64
87
|
}
|
|
88
|
+
async getBooleanPreferenceByPath(sectionTitle, name) {
|
|
89
|
+
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
90
|
+
return this.getBooleanPreferenceById(preferenceId);
|
|
91
|
+
}
|
|
65
92
|
async getBooleanPreferenceById(preferenceId) {
|
|
66
93
|
const element = await this.findPreferenceEditorById(preferenceId);
|
|
67
94
|
return element.isChecked();
|
|
68
95
|
}
|
|
69
|
-
async
|
|
96
|
+
async setBooleanPreferenceByPath(sectionTitle, name, value) {
|
|
70
97
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
71
|
-
return this.
|
|
98
|
+
return this.setBooleanPreferenceById(preferenceId, value);
|
|
72
99
|
}
|
|
73
100
|
async setBooleanPreferenceById(preferenceId, value) {
|
|
74
101
|
const element = await this.findPreferenceEditorById(preferenceId);
|
|
75
102
|
return value ? element.check() : element.uncheck();
|
|
76
103
|
}
|
|
77
|
-
async
|
|
104
|
+
async getStringPreferenceByPath(sectionTitle, name) {
|
|
78
105
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
79
|
-
return this.
|
|
106
|
+
return this.getStringPreferenceById(preferenceId);
|
|
80
107
|
}
|
|
81
108
|
async getStringPreferenceById(preferenceId) {
|
|
82
109
|
const element = await this.findPreferenceEditorById(preferenceId);
|
|
83
110
|
return element.evaluate(e => e.value);
|
|
84
111
|
}
|
|
85
|
-
async
|
|
112
|
+
async setStringPreferenceByPath(sectionTitle, name, value) {
|
|
86
113
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
87
|
-
return this.
|
|
114
|
+
return this.setStringPreferenceById(preferenceId, value);
|
|
88
115
|
}
|
|
89
116
|
async setStringPreferenceById(preferenceId, value) {
|
|
90
117
|
const element = await this.findPreferenceEditorById(preferenceId);
|
|
91
118
|
return element.fill(value);
|
|
92
119
|
}
|
|
93
|
-
async
|
|
120
|
+
async getOptionsPreferenceByPath(sectionTitle, name) {
|
|
94
121
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
95
|
-
return this.
|
|
122
|
+
return this.getOptionsPreferenceById(preferenceId);
|
|
96
123
|
}
|
|
97
|
-
async
|
|
98
|
-
await this.
|
|
99
|
-
|
|
100
|
-
await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId)}.theia-mod-item-modified`, { timeout: this.customTimeout }));
|
|
124
|
+
async getOptionsPreferenceById(preferenceId) {
|
|
125
|
+
const element = await this.findPreferenceEditorById(preferenceId, this.optionSelectLabel);
|
|
126
|
+
return element.evaluate(e => { var _a; return (_a = e.textContent) !== null && _a !== void 0 ? _a : ''; });
|
|
101
127
|
}
|
|
102
|
-
async
|
|
103
|
-
const resetPreferenceButton = await this.findPreferenceResetButton(preferenceId);
|
|
104
|
-
if (!resetPreferenceButton) {
|
|
105
|
-
// preference not modified
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
const previousValue = await this.getStringPreferenceById(preferenceId);
|
|
109
|
-
const selector = this.getPreferenceEditorSelector(preferenceId);
|
|
110
|
-
const done = await resetPreferenceButton.click();
|
|
111
|
-
await this.page.waitForFunction(data => {
|
|
112
|
-
const element = document.querySelector(data.selector);
|
|
113
|
-
if (!element) {
|
|
114
|
-
throw new Error(`Could not find preference element with id "${data.preferenceId}"`);
|
|
115
|
-
}
|
|
116
|
-
const value = element.value;
|
|
117
|
-
return value !== data.previousValue;
|
|
118
|
-
}, { preferenceId, selector, previousValue, done }, { timeout: this.customTimeout });
|
|
119
|
-
}
|
|
120
|
-
async resetStringPreferenceByPath(sectionTitle, name) {
|
|
128
|
+
async setOptionsPreferenceByPath(sectionTitle, name, value) {
|
|
121
129
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
122
|
-
return this.
|
|
130
|
+
return this.setOptionsPreferenceById(preferenceId, value);
|
|
123
131
|
}
|
|
124
|
-
async
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
const selector = this.getPreferenceEditorSelector(preferenceId);
|
|
132
|
-
const done = await resetPreferenceButton.click();
|
|
133
|
-
await this.page.waitForFunction(data => {
|
|
134
|
-
const element = document.querySelector(data.selector);
|
|
135
|
-
if (!element) {
|
|
136
|
-
throw new Error(`Could not find preference element with id "${data.preferenceId}"`);
|
|
137
|
-
}
|
|
138
|
-
const value = element.checked;
|
|
139
|
-
return value !== data.previousValue;
|
|
140
|
-
}, { preferenceId, selector, previousValue, done }, { timeout: this.customTimeout });
|
|
141
|
-
}
|
|
142
|
-
async resetBooleanPreferenceByPath(sectionTitle, name) {
|
|
132
|
+
async setOptionsPreferenceById(preferenceId, value) {
|
|
133
|
+
const element = await this.findPreferenceEditorById(preferenceId, this.optionSelectLabel);
|
|
134
|
+
await element.click();
|
|
135
|
+
const option = await this.page.waitForSelector(`${this.optionSelectDropdown} ${this.optionSelectDropdownValue}:has-text("${value}")`);
|
|
136
|
+
await option.click();
|
|
137
|
+
}
|
|
138
|
+
async resetPreferenceByPath(sectionTitle, name) {
|
|
143
139
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
144
|
-
return this.
|
|
140
|
+
return this.resetPreferenceById(preferenceId);
|
|
141
|
+
}
|
|
142
|
+
async resetPreferenceById(preferenceId) {
|
|
143
|
+
// this is just to fail if the preference doesn't exist at all
|
|
144
|
+
await this.findPreferenceEditorById(preferenceId, '');
|
|
145
|
+
const resetPreferenceButton = await this.findPreferenceResetButton(preferenceId);
|
|
146
|
+
await resetPreferenceButton.click();
|
|
147
|
+
await this.waitForUnmodified(preferenceId);
|
|
145
148
|
}
|
|
146
149
|
async findPreferenceId(sectionTitle, name) {
|
|
147
150
|
const viewElement = await this.viewElement();
|
|
@@ -153,9 +156,9 @@ class TheiaPreferenceView extends theia_view_1.TheiaView {
|
|
|
153
156
|
}
|
|
154
157
|
return preferenceId;
|
|
155
158
|
}
|
|
156
|
-
async findPreferenceEditorById(preferenceId) {
|
|
159
|
+
async findPreferenceEditorById(preferenceId, elementType = 'input') {
|
|
157
160
|
const viewElement = await this.viewElement();
|
|
158
|
-
const element = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(this.getPreferenceEditorSelector(preferenceId), { timeout: this.customTimeout }));
|
|
161
|
+
const element = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(this.getPreferenceEditorSelector(preferenceId, elementType), { timeout: this.customTimeout }));
|
|
159
162
|
if (!element) {
|
|
160
163
|
throw new Error(`Could not find element with preference id "${preferenceId}"`);
|
|
161
164
|
}
|
|
@@ -164,23 +167,12 @@ class TheiaPreferenceView extends theia_view_1.TheiaView {
|
|
|
164
167
|
getPreferenceSelector(preferenceId) {
|
|
165
168
|
return `li[data-pref-id="${preferenceId}"]`;
|
|
166
169
|
}
|
|
167
|
-
getPreferenceEditorSelector(preferenceId) {
|
|
168
|
-
return `${this.getPreferenceSelector(preferenceId)}
|
|
169
|
-
}
|
|
170
|
-
getPreferenceGutterSelector(preferenceId) {
|
|
171
|
-
return `${this.getPreferenceSelector(preferenceId)} .pref-context-gutter`;
|
|
170
|
+
getPreferenceEditorSelector(preferenceId, elementType) {
|
|
171
|
+
return `${this.getPreferenceSelector(preferenceId)} ${elementType}`;
|
|
172
172
|
}
|
|
173
173
|
async findPreferenceResetButton(preferenceId) {
|
|
174
174
|
await this.activate();
|
|
175
175
|
const viewElement = await this.viewElement();
|
|
176
|
-
const gutter = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId)}`, { timeout: this.customTimeout }));
|
|
177
|
-
if (!gutter) {
|
|
178
|
-
throw new Error(`Could not determine modified state for element with preference id "${preferenceId}"`);
|
|
179
|
-
}
|
|
180
|
-
const isModified = await gutter.evaluate(e => e.classList.contains('theia-mod-item-modified'));
|
|
181
|
-
if (!isModified) {
|
|
182
|
-
return undefined;
|
|
183
|
-
}
|
|
184
176
|
const settingsContextMenuBtn = await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(`${this.getPreferenceSelector(preferenceId)} .settings-context-menu-btn`));
|
|
185
177
|
if (!settingsContextMenuBtn) {
|
|
186
178
|
throw new Error(`Could not find context menu button for element with preference id "${preferenceId}"`);
|
|
@@ -192,6 +184,19 @@ class TheiaPreferenceView extends theia_view_1.TheiaView {
|
|
|
192
184
|
}
|
|
193
185
|
return resetPreferenceButton;
|
|
194
186
|
}
|
|
187
|
+
async waitForModified(preferenceId) {
|
|
188
|
+
await this.activate();
|
|
189
|
+
const viewElement = await this.viewElement();
|
|
190
|
+
await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId)}${this.modificationIndicator}`, { timeout: this.customTimeout }));
|
|
191
|
+
}
|
|
192
|
+
async waitForUnmodified(preferenceId) {
|
|
193
|
+
await this.activate();
|
|
194
|
+
const viewElement = await this.viewElement();
|
|
195
|
+
await (viewElement === null || viewElement === void 0 ? void 0 : viewElement.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId)}${this.modificationIndicator}`, { state: 'detached', timeout: this.customTimeout }));
|
|
196
|
+
}
|
|
197
|
+
getPreferenceGutterSelector(preferenceId) {
|
|
198
|
+
return `${this.getPreferenceSelector(preferenceId)} .pref-context-gutter`;
|
|
199
|
+
}
|
|
195
200
|
}
|
|
196
201
|
exports.TheiaPreferenceView = TheiaPreferenceView;
|
|
197
202
|
//# sourceMappingURL=theia-preference-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theia-preference-view.js","sourceRoot":"","sources":["../src/theia-preference-view.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAIhF,6CAAyC;AAEzC,MAAM,qBAAqB,GAAG;IAC1B,WAAW,EAAE,4BAA4B;IACzC,YAAY,EAAE,kBAAkB;CACnC,CAAC;AAEW,QAAA,aAAa,GAAG;IACzB,QAAQ,EAAE;QACN,UAAU,EAAE,qBAAqB;KACpC;IACD,UAAU,EAAE;QACR,kBAAkB,EAAE,+BAA+B;KACtD;CACJ,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,QAAQ,EAAE;QACN,UAAU,EAAE;YACR,OAAO,EAAE,IAAI;SAChB;KACJ;IACD,UAAU,EAAE;QACR,kBAAkB,EAAE,MAAM;KAC7B;CACJ,CAAC;AAEF,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC5B,qCAAa,CAAA;IACb,+CAAuB,CAAA;AAC3B,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AAED,MAAa,mBAAoB,SAAQ,sBAAS;
|
|
1
|
+
{"version":3,"file":"theia-preference-view.js","sourceRoot":"","sources":["../src/theia-preference-view.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/playwright",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.26.0-next.10+fe4204f0968",
|
|
4
4
|
"description": "System tests for Theia",
|
|
5
5
|
"license": "EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
43
|
"main": "lib/index",
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "fe4204f096854ad2b2069748bb764cb0bd940936"
|
|
45
45
|
}
|
|
@@ -38,14 +38,14 @@ test.describe('Preference View', () => {
|
|
|
38
38
|
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
39
39
|
const preferenceId = PreferenceIds.DiffEditor.MaxComputationTime;
|
|
40
40
|
|
|
41
|
-
await preferences.
|
|
41
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
42
42
|
expect(await preferences.getStringPreferenceById(preferenceId)).toBe(DefaultPreferences.DiffEditor.MaxComputationTime);
|
|
43
43
|
|
|
44
44
|
await preferences.setStringPreferenceById(preferenceId, '8000');
|
|
45
45
|
await preferences.waitForModified(preferenceId);
|
|
46
46
|
expect(await preferences.getStringPreferenceById(preferenceId)).toBe('8000');
|
|
47
47
|
|
|
48
|
-
await preferences.
|
|
48
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
49
49
|
expect(await preferences.getStringPreferenceById(preferenceId)).toBe(DefaultPreferences.DiffEditor.MaxComputationTime);
|
|
50
50
|
});
|
|
51
51
|
|
|
@@ -53,29 +53,48 @@ test.describe('Preference View', () => {
|
|
|
53
53
|
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
54
54
|
const preferenceId = PreferenceIds.Explorer.AutoReveal;
|
|
55
55
|
|
|
56
|
-
await preferences.
|
|
56
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
57
57
|
expect(await preferences.getBooleanPreferenceById(preferenceId)).toBe(DefaultPreferences.Explorer.AutoReveal.Enabled);
|
|
58
58
|
|
|
59
59
|
await preferences.setBooleanPreferenceById(preferenceId, false);
|
|
60
60
|
await preferences.waitForModified(preferenceId);
|
|
61
61
|
expect(await preferences.getBooleanPreferenceById(preferenceId)).toBe(false);
|
|
62
62
|
|
|
63
|
-
await preferences.
|
|
63
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
64
64
|
expect(await preferences.getBooleanPreferenceById(preferenceId)).toBe(DefaultPreferences.Explorer.AutoReveal.Enabled);
|
|
65
65
|
});
|
|
66
66
|
|
|
67
|
+
test('should be able to read, set, and reset Options preferences', async () => {
|
|
68
|
+
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
69
|
+
const preferenceId = PreferenceIds.Editor.RenderWhitespace;
|
|
70
|
+
|
|
71
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
72
|
+
expect(await preferences.getOptionsPreferenceById(preferenceId)).toBe(DefaultPreferences.Editor.RenderWhitespace.Selection);
|
|
73
|
+
|
|
74
|
+
await preferences.setOptionsPreferenceById(preferenceId, DefaultPreferences.Editor.RenderWhitespace.Boundary);
|
|
75
|
+
await preferences.waitForModified(preferenceId);
|
|
76
|
+
expect(await preferences.getOptionsPreferenceById(preferenceId)).toBe(DefaultPreferences.Editor.RenderWhitespace.Boundary);
|
|
77
|
+
|
|
78
|
+
await preferences.resetPreferenceById(preferenceId);
|
|
79
|
+
expect(await preferences.getOptionsPreferenceById(preferenceId)).toBe(DefaultPreferences.Editor.RenderWhitespace.Selection);
|
|
80
|
+
});
|
|
81
|
+
|
|
67
82
|
test('should throw an error if we try to read, set, or reset a non-existing preference', async () => {
|
|
68
83
|
const preferences = await app.openPreferences(TheiaPreferenceView);
|
|
69
84
|
|
|
70
85
|
preferences.customTimeout = 500;
|
|
71
86
|
try {
|
|
72
|
-
await expect(preferences.getBooleanPreferenceById('
|
|
73
|
-
await expect(preferences.setBooleanPreferenceById('
|
|
74
|
-
await expect(preferences.
|
|
87
|
+
await expect(preferences.getBooleanPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
88
|
+
await expect(preferences.setBooleanPreferenceById('not.a.real.preference', true)).rejects.toThrowError();
|
|
89
|
+
await expect(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
75
90
|
|
|
76
|
-
await expect(preferences.getStringPreferenceById('
|
|
77
|
-
await expect(preferences.setStringPreferenceById('
|
|
78
|
-
await expect(preferences.
|
|
91
|
+
await expect(preferences.getStringPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
92
|
+
await expect(preferences.setStringPreferenceById('not.a.real.preference', 'a')).rejects.toThrowError();
|
|
93
|
+
await expect(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
94
|
+
|
|
95
|
+
await expect(preferences.getOptionsPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
96
|
+
await expect(preferences.setOptionsPreferenceById('not.a.real.preference', 'a')).rejects.toThrowError();
|
|
97
|
+
await expect(preferences.resetPreferenceById('not.a.real.preference')).rejects.toThrowError();
|
|
79
98
|
} finally {
|
|
80
99
|
preferences.customTimeout = undefined;
|
|
81
100
|
}
|
|
@@ -86,8 +105,14 @@ test.describe('Preference View', () => {
|
|
|
86
105
|
const stringPreference = PreferenceIds.DiffEditor.MaxComputationTime;
|
|
87
106
|
const booleanPreference = PreferenceIds.Explorer.AutoReveal;
|
|
88
107
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
108
|
+
preferences.customTimeout = 500;
|
|
109
|
+
try {
|
|
110
|
+
await expect(preferences.getBooleanPreferenceById(stringPreference)).rejects.toThrowError();
|
|
111
|
+
await expect(preferences.setBooleanPreferenceById(stringPreference, true)).rejects.toThrowError();
|
|
112
|
+
await expect(preferences.setStringPreferenceById(booleanPreference, 'true')).rejects.toThrowError();
|
|
113
|
+
await expect(preferences.setOptionsPreferenceById(booleanPreference, 'true')).rejects.toThrowError();
|
|
114
|
+
} finally {
|
|
115
|
+
preferences.customTimeout = undefined;
|
|
116
|
+
}
|
|
92
117
|
});
|
|
93
118
|
});
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { expect } from '@playwright/test';
|
|
18
|
+
import { DefaultPreferences, PreferenceIds, TheiaPreferenceView } from '../theia-preference-view';
|
|
18
19
|
import { TheiaApp } from '../theia-app';
|
|
19
20
|
import { TheiaTextEditor } from '../theia-text-editor';
|
|
20
21
|
import { TheiaWorkspace } from '../theia-workspace';
|
|
@@ -27,6 +28,11 @@ test.describe('Theia Text Editor', () => {
|
|
|
27
28
|
test.beforeAll(async () => {
|
|
28
29
|
const ws = new TheiaWorkspace(['src/tests/resources/sample-files1']);
|
|
29
30
|
app = await TheiaApp.load(page, ws);
|
|
31
|
+
|
|
32
|
+
// set auto-save preference to off
|
|
33
|
+
const preferenceView = await app.openPreferences(TheiaPreferenceView);
|
|
34
|
+
await preferenceView.setOptionsPreferenceById(PreferenceIds.Editor.AutoSave, DefaultPreferences.Editor.AutoSave.Off);
|
|
35
|
+
await preferenceView.close();
|
|
30
36
|
});
|
|
31
37
|
|
|
32
38
|
test('should be visible and active after opening "sample.txt"', async () => {
|
|
@@ -164,7 +170,7 @@ test.describe('Theia Text Editor', () => {
|
|
|
164
170
|
await sampleTextEditor.saveAndClose();
|
|
165
171
|
});
|
|
166
172
|
|
|
167
|
-
test
|
|
173
|
+
test('should close without saving', async () => {
|
|
168
174
|
const sampleTextEditor = await app.openEditor('sample.txt', TheiaTextEditor);
|
|
169
175
|
await sampleTextEditor.replaceLineWithLineNumber('change again', 1);
|
|
170
176
|
expect(await sampleTextEditor.isDirty()).toBe(true);
|
|
@@ -24,6 +24,10 @@ const TheiaSettingsViewData = {
|
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export const PreferenceIds = {
|
|
27
|
+
Editor: {
|
|
28
|
+
AutoSave: 'files.autoSave',
|
|
29
|
+
RenderWhitespace: 'editor.renderWhitespace'
|
|
30
|
+
},
|
|
27
31
|
Explorer: {
|
|
28
32
|
AutoReveal: 'explorer.autoReveal'
|
|
29
33
|
},
|
|
@@ -33,6 +37,21 @@ export const PreferenceIds = {
|
|
|
33
37
|
};
|
|
34
38
|
|
|
35
39
|
export const DefaultPreferences = {
|
|
40
|
+
Editor: {
|
|
41
|
+
AutoSave: {
|
|
42
|
+
Off: 'off',
|
|
43
|
+
AfterDelay: 'afterDelay',
|
|
44
|
+
OnFocusChange: 'onFocusChange',
|
|
45
|
+
OnWindowChange: 'onWindowChange'
|
|
46
|
+
},
|
|
47
|
+
RenderWhitespace: {
|
|
48
|
+
None: 'none',
|
|
49
|
+
Boundary: 'boundary',
|
|
50
|
+
Selection: 'selection',
|
|
51
|
+
Trailing: 'trailing',
|
|
52
|
+
All: 'all'
|
|
53
|
+
}
|
|
54
|
+
},
|
|
36
55
|
Explorer: {
|
|
37
56
|
AutoReveal: {
|
|
38
57
|
Enabled: true
|
|
@@ -50,6 +69,10 @@ export enum TheiaPreferenceScope {
|
|
|
50
69
|
|
|
51
70
|
export class TheiaPreferenceView extends TheiaView {
|
|
52
71
|
public customTimeout?: number;
|
|
72
|
+
protected modificationIndicator = '.theia-mod-item-modified';
|
|
73
|
+
protected optionSelectLabel = '.theia-select-component-label';
|
|
74
|
+
protected optionSelectDropdown = '.theia-select-component-dropdown';
|
|
75
|
+
protected optionSelectDropdownValue = '.theia-select-component-option-value';
|
|
53
76
|
|
|
54
77
|
constructor(app: TheiaApp) {
|
|
55
78
|
super(TheiaSettingsViewData, app);
|
|
@@ -72,14 +95,19 @@ export class TheiaPreferenceView extends TheiaView {
|
|
|
72
95
|
await scopeTab.click();
|
|
73
96
|
}
|
|
74
97
|
|
|
98
|
+
async getBooleanPreferenceByPath(sectionTitle: string, name: string): Promise<boolean> {
|
|
99
|
+
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
100
|
+
return this.getBooleanPreferenceById(preferenceId);
|
|
101
|
+
}
|
|
102
|
+
|
|
75
103
|
async getBooleanPreferenceById(preferenceId: string): Promise<boolean> {
|
|
76
104
|
const element = await this.findPreferenceEditorById(preferenceId);
|
|
77
105
|
return element.isChecked();
|
|
78
106
|
}
|
|
79
107
|
|
|
80
|
-
async
|
|
108
|
+
async setBooleanPreferenceByPath(sectionTitle: string, name: string, value: boolean): Promise<void> {
|
|
81
109
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
82
|
-
return this.
|
|
110
|
+
return this.setBooleanPreferenceById(preferenceId, value);
|
|
83
111
|
}
|
|
84
112
|
|
|
85
113
|
async setBooleanPreferenceById(preferenceId: string, value: boolean): Promise<void> {
|
|
@@ -87,9 +115,9 @@ export class TheiaPreferenceView extends TheiaView {
|
|
|
87
115
|
return value ? element.check() : element.uncheck();
|
|
88
116
|
}
|
|
89
117
|
|
|
90
|
-
async
|
|
118
|
+
async getStringPreferenceByPath(sectionTitle: string, name: string): Promise<string> {
|
|
91
119
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
92
|
-
return this.
|
|
120
|
+
return this.getStringPreferenceById(preferenceId);
|
|
93
121
|
}
|
|
94
122
|
|
|
95
123
|
async getStringPreferenceById(preferenceId: string): Promise<string> {
|
|
@@ -97,9 +125,9 @@ export class TheiaPreferenceView extends TheiaView {
|
|
|
97
125
|
return element.evaluate(e => (e as HTMLInputElement).value);
|
|
98
126
|
}
|
|
99
127
|
|
|
100
|
-
async
|
|
128
|
+
async setStringPreferenceByPath(sectionTitle: string, name: string, value: string): Promise<void> {
|
|
101
129
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
102
|
-
return this.
|
|
130
|
+
return this.setStringPreferenceById(preferenceId, value);
|
|
103
131
|
}
|
|
104
132
|
|
|
105
133
|
async setStringPreferenceById(preferenceId: string, value: string): Promise<void> {
|
|
@@ -107,63 +135,39 @@ export class TheiaPreferenceView extends TheiaView {
|
|
|
107
135
|
return element.fill(value);
|
|
108
136
|
}
|
|
109
137
|
|
|
110
|
-
async
|
|
138
|
+
async getOptionsPreferenceByPath(sectionTitle: string, name: string): Promise<string> {
|
|
111
139
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
112
|
-
return this.
|
|
140
|
+
return this.getOptionsPreferenceById(preferenceId);
|
|
113
141
|
}
|
|
114
142
|
|
|
115
|
-
async
|
|
116
|
-
await this.
|
|
117
|
-
|
|
118
|
-
await viewElement?.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId)}.theia-mod-item-modified`, { timeout: this.customTimeout });
|
|
143
|
+
async getOptionsPreferenceById(preferenceId: string): Promise<string> {
|
|
144
|
+
const element = await this.findPreferenceEditorById(preferenceId, this.optionSelectLabel);
|
|
145
|
+
return element.evaluate(e => e.textContent ?? '');
|
|
119
146
|
}
|
|
120
147
|
|
|
121
|
-
async
|
|
122
|
-
const resetPreferenceButton = await this.findPreferenceResetButton(preferenceId);
|
|
123
|
-
if (!resetPreferenceButton) {
|
|
124
|
-
// preference not modified
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
const previousValue = await this.getStringPreferenceById(preferenceId);
|
|
128
|
-
const selector = this.getPreferenceEditorSelector(preferenceId);
|
|
129
|
-
const done = await resetPreferenceButton.click();
|
|
130
|
-
await this.page.waitForFunction(data => {
|
|
131
|
-
const element = document.querySelector(data.selector);
|
|
132
|
-
if (!element) {
|
|
133
|
-
throw new Error(`Could not find preference element with id "${data.preferenceId}"`);
|
|
134
|
-
}
|
|
135
|
-
const value = (element as HTMLInputElement).value;
|
|
136
|
-
return value !== data.previousValue;
|
|
137
|
-
}, { preferenceId, selector, previousValue, done }, { timeout: this.customTimeout });
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
async resetStringPreferenceByPath(sectionTitle: string, name: string): Promise<void> {
|
|
148
|
+
async setOptionsPreferenceByPath(sectionTitle: string, name: string, value: string): Promise<void> {
|
|
141
149
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
142
|
-
return this.
|
|
150
|
+
return this.setOptionsPreferenceById(preferenceId, value);
|
|
143
151
|
}
|
|
144
152
|
|
|
145
|
-
async
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
const done = await resetPreferenceButton.click();
|
|
154
|
-
await this.page.waitForFunction(data => {
|
|
155
|
-
const element = document.querySelector(data.selector);
|
|
156
|
-
if (!element) {
|
|
157
|
-
throw new Error(`Could not find preference element with id "${data.preferenceId}"`);
|
|
158
|
-
}
|
|
159
|
-
const value = (element as HTMLInputElement).checked;
|
|
160
|
-
return value !== data.previousValue;
|
|
161
|
-
}, { preferenceId, selector, previousValue, done }, { timeout: this.customTimeout });
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
async resetBooleanPreferenceByPath(sectionTitle: string, name: string): Promise<void> {
|
|
153
|
+
async setOptionsPreferenceById(preferenceId: string, value: string): Promise<void> {
|
|
154
|
+
const element = await this.findPreferenceEditorById(preferenceId, this.optionSelectLabel);
|
|
155
|
+
await element.click();
|
|
156
|
+
const option = await this.page.waitForSelector(`${this.optionSelectDropdown} ${this.optionSelectDropdownValue}:has-text("${value}")`);
|
|
157
|
+
await option.click();
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
async resetPreferenceByPath(sectionTitle: string, name: string): Promise<void> {
|
|
165
161
|
const preferenceId = await this.findPreferenceId(sectionTitle, name);
|
|
166
|
-
return this.
|
|
162
|
+
return this.resetPreferenceById(preferenceId);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
async resetPreferenceById(preferenceId: string): Promise<void> {
|
|
166
|
+
// this is just to fail if the preference doesn't exist at all
|
|
167
|
+
await this.findPreferenceEditorById(preferenceId, '');
|
|
168
|
+
const resetPreferenceButton = await this.findPreferenceResetButton(preferenceId);
|
|
169
|
+
await resetPreferenceButton.click();
|
|
170
|
+
await this.waitForUnmodified(preferenceId);
|
|
167
171
|
}
|
|
168
172
|
|
|
169
173
|
private async findPreferenceId(sectionTitle: string, name: string): Promise<string> {
|
|
@@ -178,9 +182,9 @@ export class TheiaPreferenceView extends TheiaView {
|
|
|
178
182
|
return preferenceId;
|
|
179
183
|
}
|
|
180
184
|
|
|
181
|
-
private async findPreferenceEditorById(preferenceId: string): Promise<ElementHandle<SVGElement | HTMLElement>> {
|
|
185
|
+
private async findPreferenceEditorById(preferenceId: string, elementType: string = 'input'): Promise<ElementHandle<SVGElement | HTMLElement>> {
|
|
182
186
|
const viewElement = await this.viewElement();
|
|
183
|
-
const element = await viewElement?.waitForSelector(this.getPreferenceEditorSelector(preferenceId), { timeout: this.customTimeout });
|
|
187
|
+
const element = await viewElement?.waitForSelector(this.getPreferenceEditorSelector(preferenceId, elementType), { timeout: this.customTimeout });
|
|
184
188
|
if (!element) {
|
|
185
189
|
throw new Error(`Could not find element with preference id "${preferenceId}"`);
|
|
186
190
|
}
|
|
@@ -191,26 +195,13 @@ export class TheiaPreferenceView extends TheiaView {
|
|
|
191
195
|
return `li[data-pref-id="${preferenceId}"]`;
|
|
192
196
|
}
|
|
193
197
|
|
|
194
|
-
private getPreferenceEditorSelector(preferenceId: string): string {
|
|
195
|
-
return `${this.getPreferenceSelector(preferenceId)}
|
|
198
|
+
private getPreferenceEditorSelector(preferenceId: string, elementType: string): string {
|
|
199
|
+
return `${this.getPreferenceSelector(preferenceId)} ${elementType}`;
|
|
196
200
|
}
|
|
197
201
|
|
|
198
|
-
private
|
|
199
|
-
return `${this.getPreferenceSelector(preferenceId)} .pref-context-gutter`;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
private async findPreferenceResetButton(preferenceId: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined> {
|
|
202
|
+
private async findPreferenceResetButton(preferenceId: string): Promise<ElementHandle<SVGElement | HTMLElement>> {
|
|
203
203
|
await this.activate();
|
|
204
204
|
const viewElement = await this.viewElement();
|
|
205
|
-
const gutter = await viewElement?.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId)}`, { timeout: this.customTimeout });
|
|
206
|
-
if (!gutter) {
|
|
207
|
-
throw new Error(`Could not determine modified state for element with preference id "${preferenceId}"`);
|
|
208
|
-
}
|
|
209
|
-
const isModified = await gutter.evaluate(e => e.classList.contains('theia-mod-item-modified'));
|
|
210
|
-
if (!isModified) {
|
|
211
|
-
return undefined;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
205
|
const settingsContextMenuBtn = await viewElement?.waitForSelector(`${this.getPreferenceSelector(preferenceId)} .settings-context-menu-btn`);
|
|
215
206
|
if (!settingsContextMenuBtn) {
|
|
216
207
|
throw new Error(`Could not find context menu button for element with preference id "${preferenceId}"`);
|
|
@@ -223,4 +214,19 @@ export class TheiaPreferenceView extends TheiaView {
|
|
|
223
214
|
return resetPreferenceButton;
|
|
224
215
|
}
|
|
225
216
|
|
|
217
|
+
async waitForModified(preferenceId: string): Promise<void> {
|
|
218
|
+
await this.activate();
|
|
219
|
+
const viewElement = await this.viewElement();
|
|
220
|
+
await viewElement?.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId)}${this.modificationIndicator}`, { timeout: this.customTimeout });
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
async waitForUnmodified(preferenceId: string): Promise<void> {
|
|
224
|
+
await this.activate();
|
|
225
|
+
const viewElement = await this.viewElement();
|
|
226
|
+
await viewElement?.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId)}${this.modificationIndicator}`, { state: 'detached', timeout: this.customTimeout });
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
private getPreferenceGutterSelector(preferenceId: string): string {
|
|
230
|
+
return `${this.getPreferenceSelector(preferenceId)} .pref-context-gutter`;
|
|
231
|
+
}
|
|
226
232
|
}
|