Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/files/test/browser/fileActions.test.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import assert from 'assert';
7
import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../../base/test/common/utils.js';
8
import { incrementFileName } from '../../browser/fileActions.js';
9
10
suite('Files - Increment file name simple', () => {
11
12
test('Increment file name without any version', function () {
13
const name = 'test.js';
14
const result = incrementFileName(name, false, 'simple');
15
assert.strictEqual(result, 'test copy.js');
16
});
17
18
test('Increment file name with suffix version', function () {
19
const name = 'test copy.js';
20
const result = incrementFileName(name, false, 'simple');
21
assert.strictEqual(result, 'test copy 2.js');
22
});
23
24
test('Increment file name with suffix version with leading zeros', function () {
25
const name = 'test copy 005.js';
26
const result = incrementFileName(name, false, 'simple');
27
assert.strictEqual(result, 'test copy 6.js');
28
});
29
30
test('Increment file name with suffix version, too big number', function () {
31
const name = 'test copy 9007199254740992.js';
32
const result = incrementFileName(name, false, 'simple');
33
assert.strictEqual(result, 'test copy 9007199254740992 copy.js');
34
});
35
36
test('Increment file name with just version in name', function () {
37
const name = 'copy.js';
38
const result = incrementFileName(name, false, 'simple');
39
assert.strictEqual(result, 'copy copy.js');
40
});
41
42
test('Increment file name with just version in name, v2', function () {
43
const name = 'copy 2.js';
44
const result = incrementFileName(name, false, 'simple');
45
assert.strictEqual(result, 'copy 2 copy.js');
46
});
47
48
test('Increment file name without any extension or version', function () {
49
const name = 'test';
50
const result = incrementFileName(name, false, 'simple');
51
assert.strictEqual(result, 'test copy');
52
});
53
54
test('Increment file name without any extension or version, trailing dot', function () {
55
const name = 'test.';
56
const result = incrementFileName(name, false, 'simple');
57
assert.strictEqual(result, 'test copy.');
58
});
59
60
test('Increment file name without any extension or version, leading dot', function () {
61
const name = '.test';
62
const result = incrementFileName(name, false, 'simple');
63
assert.strictEqual(result, '.test copy');
64
});
65
66
test('Increment file name without any extension or version, leading dot v2', function () {
67
const name = '..test';
68
const result = incrementFileName(name, false, 'simple');
69
assert.strictEqual(result, '. copy.test');
70
});
71
72
test('Increment file name without any extension but with suffix version', function () {
73
const name = 'test copy 5';
74
const result = incrementFileName(name, false, 'simple');
75
assert.strictEqual(result, 'test copy 6');
76
});
77
78
test('Increment folder name without any version', function () {
79
const name = 'test';
80
const result = incrementFileName(name, true, 'simple');
81
assert.strictEqual(result, 'test copy');
82
});
83
84
test('Increment folder name with suffix version', function () {
85
const name = 'test copy';
86
const result = incrementFileName(name, true, 'simple');
87
assert.strictEqual(result, 'test copy 2');
88
});
89
90
test('Increment folder name with suffix version, leading zeros', function () {
91
const name = 'test copy 005';
92
const result = incrementFileName(name, true, 'simple');
93
assert.strictEqual(result, 'test copy 6');
94
});
95
96
test('Increment folder name with suffix version, too big number', function () {
97
const name = 'test copy 9007199254740992';
98
const result = incrementFileName(name, true, 'simple');
99
assert.strictEqual(result, 'test copy 9007199254740992 copy');
100
});
101
102
test('Increment folder name with just version in name', function () {
103
const name = 'copy';
104
const result = incrementFileName(name, true, 'simple');
105
assert.strictEqual(result, 'copy copy');
106
});
107
108
test('Increment folder name with just version in name, v2', function () {
109
const name = 'copy 2';
110
const result = incrementFileName(name, true, 'simple');
111
assert.strictEqual(result, 'copy 2 copy');
112
});
113
114
test('Increment folder name "with extension" but without any version', function () {
115
const name = 'test.js';
116
const result = incrementFileName(name, true, 'simple');
117
assert.strictEqual(result, 'test.js copy');
118
});
119
120
test('Increment folder name "with extension" and with suffix version', function () {
121
const name = 'test.js copy 5';
122
const result = incrementFileName(name, true, 'simple');
123
assert.strictEqual(result, 'test.js copy 6');
124
});
125
126
test('Increment file/folder name with suffix version, special case 1', function () {
127
const name = 'test copy 0';
128
const result = incrementFileName(name, true, 'simple');
129
assert.strictEqual(result, 'test copy');
130
});
131
132
test('Increment file/folder name with suffix version, special case 2', function () {
133
const name = 'test copy 1';
134
const result = incrementFileName(name, true, 'simple');
135
assert.strictEqual(result, 'test copy 2');
136
});
137
138
ensureNoDisposablesAreLeakedInTestSuite();
139
});
140
141
suite('Files - Increment file name smart', () => {
142
143
test('Increment file name without any version', function () {
144
const name = 'test.js';
145
const result = incrementFileName(name, false, 'smart');
146
assert.strictEqual(result, 'test.1.js');
147
});
148
149
test('Increment folder name without any version', function () {
150
const name = 'test';
151
const result = incrementFileName(name, true, 'smart');
152
assert.strictEqual(result, 'test.1');
153
});
154
155
test('Increment file name with suffix version', function () {
156
const name = 'test.1.js';
157
const result = incrementFileName(name, false, 'smart');
158
assert.strictEqual(result, 'test.2.js');
159
});
160
161
test('Increment file name with suffix version with trailing zeros', function () {
162
const name = 'test.001.js';
163
const result = incrementFileName(name, false, 'smart');
164
assert.strictEqual(result, 'test.002.js');
165
});
166
167
test('Increment file name with suffix version with trailing zeros, changing length', function () {
168
const name = 'test.009.js';
169
const result = incrementFileName(name, false, 'smart');
170
assert.strictEqual(result, 'test.010.js');
171
});
172
173
test('Increment file name with suffix version with `-` as separator', function () {
174
const name = 'test-1.js';
175
const result = incrementFileName(name, false, 'smart');
176
assert.strictEqual(result, 'test-2.js');
177
});
178
179
test('Increment file name with suffix version with `-` as separator, trailing zeros', function () {
180
const name = 'test-001.js';
181
const result = incrementFileName(name, false, 'smart');
182
assert.strictEqual(result, 'test-002.js');
183
});
184
185
test('Increment file name with suffix version with `-` as separator, trailing zeros, changnig length', function () {
186
const name = 'test-099.js';
187
const result = incrementFileName(name, false, 'smart');
188
assert.strictEqual(result, 'test-100.js');
189
});
190
191
test('Increment file name with suffix version with `_` as separator', function () {
192
const name = 'test_1.js';
193
const result = incrementFileName(name, false, 'smart');
194
assert.strictEqual(result, 'test_2.js');
195
});
196
197
test('Increment folder name with suffix version', function () {
198
const name = 'test.1';
199
const result = incrementFileName(name, true, 'smart');
200
assert.strictEqual(result, 'test.2');
201
});
202
203
test('Increment folder name with suffix version, trailing zeros', function () {
204
const name = 'test.001';
205
const result = incrementFileName(name, true, 'smart');
206
assert.strictEqual(result, 'test.002');
207
});
208
209
test('Increment folder name with suffix version with `-` as separator', function () {
210
const name = 'test-1';
211
const result = incrementFileName(name, true, 'smart');
212
assert.strictEqual(result, 'test-2');
213
});
214
215
test('Increment folder name with suffix version with `_` as separator', function () {
216
const name = 'test_1';
217
const result = incrementFileName(name, true, 'smart');
218
assert.strictEqual(result, 'test_2');
219
});
220
221
test('Increment file name with suffix version, too big number', function () {
222
const name = 'test.9007199254740992.js';
223
const result = incrementFileName(name, false, 'smart');
224
assert.strictEqual(result, 'test.9007199254740992.1.js');
225
});
226
227
test('Increment folder name with suffix version, too big number', function () {
228
const name = 'test.9007199254740992';
229
const result = incrementFileName(name, true, 'smart');
230
assert.strictEqual(result, 'test.9007199254740992.1');
231
});
232
233
test('Increment file name with prefix version', function () {
234
const name = '1.test.js';
235
const result = incrementFileName(name, false, 'smart');
236
assert.strictEqual(result, '2.test.js');
237
});
238
239
test('Increment file name with just version in name', function () {
240
const name = '1.js';
241
const result = incrementFileName(name, false, 'smart');
242
assert.strictEqual(result, '2.js');
243
});
244
245
test('Increment file name with just version in name, too big number', function () {
246
const name = '9007199254740992.js';
247
const result = incrementFileName(name, false, 'smart');
248
assert.strictEqual(result, '9007199254740992.1.js');
249
});
250
251
test('Increment file name with prefix version, trailing zeros', function () {
252
const name = '001.test.js';
253
const result = incrementFileName(name, false, 'smart');
254
assert.strictEqual(result, '002.test.js');
255
});
256
257
test('Increment file name with prefix version with `-` as separator', function () {
258
const name = '1-test.js';
259
const result = incrementFileName(name, false, 'smart');
260
assert.strictEqual(result, '2-test.js');
261
});
262
263
test('Increment file name with prefix version with `_` as separator', function () {
264
const name = '1_test.js';
265
const result = incrementFileName(name, false, 'smart');
266
assert.strictEqual(result, '2_test.js');
267
});
268
269
test('Increment file name with prefix version, too big number', function () {
270
const name = '9007199254740992.test.js';
271
const result = incrementFileName(name, false, 'smart');
272
assert.strictEqual(result, '9007199254740992.test.1.js');
273
});
274
275
test('Increment file name with just version and no extension', function () {
276
const name = '001004';
277
const result = incrementFileName(name, false, 'smart');
278
assert.strictEqual(result, '001005');
279
});
280
281
test('Increment file name with just version and no extension, too big number', function () {
282
const name = '9007199254740992';
283
const result = incrementFileName(name, false, 'smart');
284
assert.strictEqual(result, '9007199254740992.1');
285
});
286
287
test('Increment file name with no extension and no version', function () {
288
const name = 'file';
289
const result = incrementFileName(name, false, 'smart');
290
assert.strictEqual(result, 'file1');
291
});
292
293
test('Increment file name with no extension', function () {
294
const name = 'file1';
295
const result = incrementFileName(name, false, 'smart');
296
assert.strictEqual(result, 'file2');
297
});
298
299
test('Increment file name with no extension, too big number', function () {
300
const name = 'file9007199254740992';
301
const result = incrementFileName(name, false, 'smart');
302
assert.strictEqual(result, 'file9007199254740992.1');
303
});
304
305
test('Increment folder name with prefix version', function () {
306
const name = '1.test';
307
const result = incrementFileName(name, true, 'smart');
308
assert.strictEqual(result, '2.test');
309
});
310
311
test('Increment folder name with prefix version, too big number', function () {
312
const name = '9007199254740992.test';
313
const result = incrementFileName(name, true, 'smart');
314
assert.strictEqual(result, '9007199254740992.test.1');
315
});
316
317
test('Increment folder name with prefix version, trailing zeros', function () {
318
const name = '001.test';
319
const result = incrementFileName(name, true, 'smart');
320
assert.strictEqual(result, '002.test');
321
});
322
323
test('Increment folder name with prefix version with `-` as separator', function () {
324
const name = '1-test';
325
const result = incrementFileName(name, true, 'smart');
326
assert.strictEqual(result, '2-test');
327
});
328
329
ensureNoDisposablesAreLeakedInTestSuite();
330
});
331
332