From 4ef823ab0624aaf32f96e04487464f8cdf9987fd Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 28 Nov 2016 18:35:43 -0800 Subject: [PATCH] Impl IBackupFileService.getWorkspaceUntitleFileBackups --- src/vs/test/utils/servicesTestUtils.ts | 25 ++++++------------- .../services/backup/common/backup.ts | 7 ++++++ .../services/backup/node/backupFileService.ts | 11 ++++++++ .../backup/test/backupFileService.test.ts | 20 +++++++++++++++ 4 files changed, 46 insertions(+), 17 deletions(-) diff --git a/src/vs/test/utils/servicesTestUtils.ts b/src/vs/test/utils/servicesTestUtils.ts index 98c911d1c1a..956d72fb3ad 100644 --- a/src/vs/test/utils/servicesTestUtils.ts +++ b/src/vs/test/utils/servicesTestUtils.ts @@ -647,23 +647,6 @@ export class TestBackupService implements IBackupService { export class TestBackupFileService implements IBackupFileService { public _serviceBrand: any; - - public getWorkspaceBackupPaths(): TPromise { - return TPromise.as([]); - } - - public getWorkspaceBackupPathsSync(): string[] { - return []; - } - - public pushWorkspaceBackupPathsSync(workspaces: URI[]): void { - return null; - } - - public getWorkspaceTextFilesWithBackupsSync(workspace: URI): string[] { - return []; - } - public hasBackup(resource: URI): TPromise { return TPromise.as(false); } @@ -694,6 +677,14 @@ export class TestBackupFileService implements IBackupFileService { return TPromise.as(void 0); } + public getWorkspaceTextFileBackups(): TPromise { + return TPromise.as([]); + } + + public getWorkspaceUntitledFileBackups(): TPromise { + return TPromise.as([]); + } + public discardResourceBackup(resource: URI): TPromise { return TPromise.as(void 0); } diff --git a/src/vs/workbench/services/backup/common/backup.ts b/src/vs/workbench/services/backup/common/backup.ts index e3505bde022..b8694c3f6c3 100644 --- a/src/vs/workbench/services/backup/common/backup.ts +++ b/src/vs/workbench/services/backup/common/backup.ts @@ -63,6 +63,13 @@ export interface IBackupFileService { */ getWorkspaceTextFileBackups(): TPromise; + /** + * Gets a list of untitled backups for the current workspace. + * + * @return The list of backups. + */ + getWorkspaceUntitledFileBackups(): TPromise; + /** * Discards the backup associated with a resource if it exists.. * diff --git a/src/vs/workbench/services/backup/node/backupFileService.ts b/src/vs/workbench/services/backup/node/backupFileService.ts index 81804fe0887..3099be471cf 100644 --- a/src/vs/workbench/services/backup/node/backupFileService.ts +++ b/src/vs/workbench/services/backup/node/backupFileService.ts @@ -23,6 +23,7 @@ export interface IBackupFilesModel { remove(resource: Uri): void; clear(): void; getTextFiles(): string[]; + getUntitledFiles(): string[]; } // TODO@daniel this should resolve the backups with their file names once we have the metadata in place @@ -70,6 +71,10 @@ export class BackupFilesModel implements IBackupFilesModel { return Object.keys(this.cache).filter(k => path.basename(path.dirname(k)) === 'file').map(k => k.replace('file://', '')); } + public getUntitledFiles(): string[] { + return Object.keys(this.cache).filter(k => path.basename(path.dirname(k)) === 'untitled').map(k => k.replace('file://', '')); + } + public remove(resource: Uri): void { delete this.cache[resource.toString()]; } @@ -199,6 +204,12 @@ export class BackupFileService implements IBackupFileService { }); } + public getWorkspaceUntitledFileBackups(): TPromise { + return this.ready.then(model => { + return model.getUntitledFiles(); + }); + } + protected getBackupResource(resource: Uri): Uri { if (!this.backupEnabled) { return null; diff --git a/src/vs/workbench/services/backup/test/backupFileService.test.ts b/src/vs/workbench/services/backup/test/backupFileService.test.ts index 67f69774c08..f933111a632 100644 --- a/src/vs/workbench/services/backup/test/backupFileService.test.ts +++ b/src/vs/workbench/services/backup/test/backupFileService.test.ts @@ -193,6 +193,26 @@ suite('BackupFileService', () => { }); }); + test('getWorkspaceUntitledFileBackups - text file', done => { + service.backupResource(fooFile, `test`).then(() => { + service.backupResource(barFile, `test`).then(() => { + service.getWorkspaceUntitledFileBackups().then(textFiles => { + assert.deepEqual(textFiles, []); + done(); + }); + }); + }); + }); + + test('getWorkspaceUntitledFileBackups - untitled file', done => { + service.backupResource(untitledFile, `test`).then(() => { + service.getWorkspaceUntitledFileBackups().then(textFiles => { + assert.deepEqual(textFiles, [untitledBackupPath]); + done(); + }); + }); + }); + test('BackupFilesModel - simple', () => { const model = new BackupFilesModel(); -- GitLab