提交 4ef823ab 编写于 作者: D Daniel Imms

Impl IBackupFileService.getWorkspaceUntitleFileBackups

上级 3db761bd
......@@ -647,23 +647,6 @@ export class TestBackupService implements IBackupService {
export class TestBackupFileService implements IBackupFileService {
public _serviceBrand: any;
public getWorkspaceBackupPaths(): TPromise<string[]> {
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<boolean> {
return TPromise.as(false);
}
......@@ -694,6 +677,14 @@ export class TestBackupFileService implements IBackupFileService {
return TPromise.as(void 0);
}
public getWorkspaceTextFileBackups(): TPromise<string[]> {
return TPromise.as([]);
}
public getWorkspaceUntitledFileBackups(): TPromise<string[]> {
return TPromise.as([]);
}
public discardResourceBackup(resource: URI): TPromise<void> {
return TPromise.as(void 0);
}
......
......@@ -63,6 +63,13 @@ export interface IBackupFileService {
*/
getWorkspaceTextFileBackups(): TPromise<string[]>;
/**
* Gets a list of untitled backups for the current workspace.
*
* @return The list of backups.
*/
getWorkspaceUntitledFileBackups(): TPromise<string[]>;
/**
* Discards the backup associated with a resource if it exists..
*
......
......@@ -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<string[]> {
return this.ready.then(model => {
return model.getUntitledFiles();
});
}
protected getBackupResource(resource: Uri): Uri {
if (!this.backupEnabled) {
return null;
......
......@@ -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();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册