Path: blob/main/src/vs/workbench/contrib/files/test/browser/fileActions.test.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import assert from 'assert';6import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../../base/test/common/utils.js';7import { incrementFileName } from '../../browser/fileActions.js';89suite('Files - Increment file name simple', () => {1011test('Increment file name without any version', function () {12const name = 'test.js';13const result = incrementFileName(name, false, 'simple');14assert.strictEqual(result, 'test copy.js');15});1617test('Increment file name with suffix version', function () {18const name = 'test copy.js';19const result = incrementFileName(name, false, 'simple');20assert.strictEqual(result, 'test copy 2.js');21});2223test('Increment file name with suffix version with leading zeros', function () {24const name = 'test copy 005.js';25const result = incrementFileName(name, false, 'simple');26assert.strictEqual(result, 'test copy 6.js');27});2829test('Increment file name with suffix version, too big number', function () {30const name = 'test copy 9007199254740992.js';31const result = incrementFileName(name, false, 'simple');32assert.strictEqual(result, 'test copy 9007199254740992 copy.js');33});3435test('Increment file name with just version in name', function () {36const name = 'copy.js';37const result = incrementFileName(name, false, 'simple');38assert.strictEqual(result, 'copy copy.js');39});4041test('Increment file name with just version in name, v2', function () {42const name = 'copy 2.js';43const result = incrementFileName(name, false, 'simple');44assert.strictEqual(result, 'copy 2 copy.js');45});4647test('Increment file name without any extension or version', function () {48const name = 'test';49const result = incrementFileName(name, false, 'simple');50assert.strictEqual(result, 'test copy');51});5253test('Increment file name without any extension or version, trailing dot', function () {54const name = 'test.';55const result = incrementFileName(name, false, 'simple');56assert.strictEqual(result, 'test copy.');57});5859test('Increment file name without any extension or version, leading dot', function () {60const name = '.test';61const result = incrementFileName(name, false, 'simple');62assert.strictEqual(result, '.test copy');63});6465test('Increment file name without any extension or version, leading dot v2', function () {66const name = '..test';67const result = incrementFileName(name, false, 'simple');68assert.strictEqual(result, '. copy.test');69});7071test('Increment file name without any extension but with suffix version', function () {72const name = 'test copy 5';73const result = incrementFileName(name, false, 'simple');74assert.strictEqual(result, 'test copy 6');75});7677test('Increment folder name without any version', function () {78const name = 'test';79const result = incrementFileName(name, true, 'simple');80assert.strictEqual(result, 'test copy');81});8283test('Increment folder name with suffix version', function () {84const name = 'test copy';85const result = incrementFileName(name, true, 'simple');86assert.strictEqual(result, 'test copy 2');87});8889test('Increment folder name with suffix version, leading zeros', function () {90const name = 'test copy 005';91const result = incrementFileName(name, true, 'simple');92assert.strictEqual(result, 'test copy 6');93});9495test('Increment folder name with suffix version, too big number', function () {96const name = 'test copy 9007199254740992';97const result = incrementFileName(name, true, 'simple');98assert.strictEqual(result, 'test copy 9007199254740992 copy');99});100101test('Increment folder name with just version in name', function () {102const name = 'copy';103const result = incrementFileName(name, true, 'simple');104assert.strictEqual(result, 'copy copy');105});106107test('Increment folder name with just version in name, v2', function () {108const name = 'copy 2';109const result = incrementFileName(name, true, 'simple');110assert.strictEqual(result, 'copy 2 copy');111});112113test('Increment folder name "with extension" but without any version', function () {114const name = 'test.js';115const result = incrementFileName(name, true, 'simple');116assert.strictEqual(result, 'test.js copy');117});118119test('Increment folder name "with extension" and with suffix version', function () {120const name = 'test.js copy 5';121const result = incrementFileName(name, true, 'simple');122assert.strictEqual(result, 'test.js copy 6');123});124125test('Increment file/folder name with suffix version, special case 1', function () {126const name = 'test copy 0';127const result = incrementFileName(name, true, 'simple');128assert.strictEqual(result, 'test copy');129});130131test('Increment file/folder name with suffix version, special case 2', function () {132const name = 'test copy 1';133const result = incrementFileName(name, true, 'simple');134assert.strictEqual(result, 'test copy 2');135});136137ensureNoDisposablesAreLeakedInTestSuite();138});139140suite('Files - Increment file name smart', () => {141142test('Increment file name without any version', function () {143const name = 'test.js';144const result = incrementFileName(name, false, 'smart');145assert.strictEqual(result, 'test.1.js');146});147148test('Increment folder name without any version', function () {149const name = 'test';150const result = incrementFileName(name, true, 'smart');151assert.strictEqual(result, 'test.1');152});153154test('Increment file name with suffix version', function () {155const name = 'test.1.js';156const result = incrementFileName(name, false, 'smart');157assert.strictEqual(result, 'test.2.js');158});159160test('Increment file name with suffix version with trailing zeros', function () {161const name = 'test.001.js';162const result = incrementFileName(name, false, 'smart');163assert.strictEqual(result, 'test.002.js');164});165166test('Increment file name with suffix version with trailing zeros, changing length', function () {167const name = 'test.009.js';168const result = incrementFileName(name, false, 'smart');169assert.strictEqual(result, 'test.010.js');170});171172test('Increment file name with suffix version with `-` as separator', function () {173const name = 'test-1.js';174const result = incrementFileName(name, false, 'smart');175assert.strictEqual(result, 'test-2.js');176});177178test('Increment file name with suffix version with `-` as separator, trailing zeros', function () {179const name = 'test-001.js';180const result = incrementFileName(name, false, 'smart');181assert.strictEqual(result, 'test-002.js');182});183184test('Increment file name with suffix version with `-` as separator, trailing zeros, changnig length', function () {185const name = 'test-099.js';186const result = incrementFileName(name, false, 'smart');187assert.strictEqual(result, 'test-100.js');188});189190test('Increment file name with suffix version with `_` as separator', function () {191const name = 'test_1.js';192const result = incrementFileName(name, false, 'smart');193assert.strictEqual(result, 'test_2.js');194});195196test('Increment folder name with suffix version', function () {197const name = 'test.1';198const result = incrementFileName(name, true, 'smart');199assert.strictEqual(result, 'test.2');200});201202test('Increment folder name with suffix version, trailing zeros', function () {203const name = 'test.001';204const result = incrementFileName(name, true, 'smart');205assert.strictEqual(result, 'test.002');206});207208test('Increment folder name with suffix version with `-` as separator', function () {209const name = 'test-1';210const result = incrementFileName(name, true, 'smart');211assert.strictEqual(result, 'test-2');212});213214test('Increment folder name with suffix version with `_` as separator', function () {215const name = 'test_1';216const result = incrementFileName(name, true, 'smart');217assert.strictEqual(result, 'test_2');218});219220test('Increment file name with suffix version, too big number', function () {221const name = 'test.9007199254740992.js';222const result = incrementFileName(name, false, 'smart');223assert.strictEqual(result, 'test.9007199254740992.1.js');224});225226test('Increment folder name with suffix version, too big number', function () {227const name = 'test.9007199254740992';228const result = incrementFileName(name, true, 'smart');229assert.strictEqual(result, 'test.9007199254740992.1');230});231232test('Increment file name with prefix version', function () {233const name = '1.test.js';234const result = incrementFileName(name, false, 'smart');235assert.strictEqual(result, '2.test.js');236});237238test('Increment file name with just version in name', function () {239const name = '1.js';240const result = incrementFileName(name, false, 'smart');241assert.strictEqual(result, '2.js');242});243244test('Increment file name with just version in name, too big number', function () {245const name = '9007199254740992.js';246const result = incrementFileName(name, false, 'smart');247assert.strictEqual(result, '9007199254740992.1.js');248});249250test('Increment file name with prefix version, trailing zeros', function () {251const name = '001.test.js';252const result = incrementFileName(name, false, 'smart');253assert.strictEqual(result, '002.test.js');254});255256test('Increment file name with prefix version with `-` as separator', function () {257const name = '1-test.js';258const result = incrementFileName(name, false, 'smart');259assert.strictEqual(result, '2-test.js');260});261262test('Increment file name with prefix version with `_` as separator', function () {263const name = '1_test.js';264const result = incrementFileName(name, false, 'smart');265assert.strictEqual(result, '2_test.js');266});267268test('Increment file name with prefix version, too big number', function () {269const name = '9007199254740992.test.js';270const result = incrementFileName(name, false, 'smart');271assert.strictEqual(result, '9007199254740992.test.1.js');272});273274test('Increment file name with just version and no extension', function () {275const name = '001004';276const result = incrementFileName(name, false, 'smart');277assert.strictEqual(result, '001005');278});279280test('Increment file name with just version and no extension, too big number', function () {281const name = '9007199254740992';282const result = incrementFileName(name, false, 'smart');283assert.strictEqual(result, '9007199254740992.1');284});285286test('Increment file name with no extension and no version', function () {287const name = 'file';288const result = incrementFileName(name, false, 'smart');289assert.strictEqual(result, 'file1');290});291292test('Increment file name with no extension', function () {293const name = 'file1';294const result = incrementFileName(name, false, 'smart');295assert.strictEqual(result, 'file2');296});297298test('Increment file name with no extension, too big number', function () {299const name = 'file9007199254740992';300const result = incrementFileName(name, false, 'smart');301assert.strictEqual(result, 'file9007199254740992.1');302});303304test('Increment folder name with prefix version', function () {305const name = '1.test';306const result = incrementFileName(name, true, 'smart');307assert.strictEqual(result, '2.test');308});309310test('Increment folder name with prefix version, too big number', function () {311const name = '9007199254740992.test';312const result = incrementFileName(name, true, 'smart');313assert.strictEqual(result, '9007199254740992.test.1');314});315316test('Increment folder name with prefix version, trailing zeros', function () {317const name = '001.test';318const result = incrementFileName(name, true, 'smart');319assert.strictEqual(result, '002.test');320});321322test('Increment folder name with prefix version with `-` as separator', function () {323const name = '1-test';324const result = incrementFileName(name, true, 'smart');325assert.strictEqual(result, '2-test');326});327328ensureNoDisposablesAreLeakedInTestSuite();329});330331332