[ADF-1568] Clean polyfills (#2347)

Use msSaveOrOpenBlob in content service for save fiel in IE
This commit is contained in:
Eugenio Romano
2017-09-19 10:03:41 +01:00
committed by Denys Vuika
parent c429aa8a10
commit d7bd9aa50b
8 changed files with 331 additions and 21 deletions

View File

@@ -0,0 +1,54 @@
/*!
* @license
* Copyright 2016 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { async, TestBed } from '@angular/core/testing';
import { AppConfigModule } from './app-config.service';
import { ContentService } from './content.service';
describe('ContentService', () => {
let contentService: ContentService;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
AppConfigModule
],
providers: [
ContentService
]
}).compileComponents();
}));
beforeEach(() => {
contentService = TestBed.get(ContentService);
});
describe('Download blob', () => {
it('Should use native msSaveOrOpenBlob if the browser is IE', (done) => {
let navigatorAny: any = window.navigator;
navigatorAny.__defineGetter__('msSaveOrOpenBlob', () => {
done();
});
let blob = new Blob([''], {type: 'text/html'});
contentService.downloadBlob(blob, 'test_ie');
});
});
});

View File

@@ -42,12 +42,17 @@ export class ContentService {
}
if (blob) {
let url = window.URL.createObjectURL(blob);
a.href = url;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(url);
if (typeof window.navigator !== 'undefined' && window.navigator.msSaveOrOpenBlob) {
navigator.msSaveOrOpenBlob(blob, fileName);
}else {
let url = window.URL.createObjectURL(blob);
a.href = url;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(url);
}
}
};
}());