Joey Perrott d1ea1f4c7f build: update license headers to reference Google LLC ()
Update the license headers throughout the repository to reference Google LLC
rather than Google Inc, for the required license headers.

PR Close 
2020-05-26 14:26:58 -04:00

107 lines
3.8 KiB
TypeScript

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import {ifEnvSupports} from '../test-util';
declare const global: any;
describe('FileReader', ifEnvSupports('FileReader', function() {
let fileReader: FileReader;
let blob: Blob;
const data = 'Hello, World!';
const testZone = Zone.current.fork({name: 'TestZone'});
// Android 4.3's native browser doesn't implement add/RemoveEventListener for FileReader
function supportsEventTargetFns() {
return FileReader.prototype.addEventListener &&
FileReader.prototype.removeEventListener;
}
(<any>supportsEventTargetFns).message =
'FileReader#addEventListener and FileReader#removeEventListener';
beforeEach(function() {
fileReader = new FileReader();
try {
blob = new Blob([data]);
} catch (e) {
// For hosts that don't support the Blob ctor (e.g. Android 4.3's native browser)
const blobBuilder = new global['WebKitBlobBuilder']();
blobBuilder.append(data);
blob = blobBuilder.getBlob();
}
});
describe('EventTarget methods', ifEnvSupports(supportsEventTargetFns, function() {
it('should bind addEventListener listeners', function(done) {
testZone.run(function() {
fileReader.addEventListener('load', function() {
expect(Zone.current).toBe(testZone);
expect(fileReader.result).toEqual(data);
done();
});
});
fileReader.readAsText(blob);
});
it('should remove listeners via removeEventListener', function(done) {
const listenerSpy = jasmine.createSpy('listener');
testZone.run(function() {
fileReader.addEventListener('loadstart', listenerSpy);
fileReader.addEventListener('loadend', function() {
expect(listenerSpy).not.toHaveBeenCalled();
done();
});
});
fileReader.removeEventListener('loadstart', listenerSpy);
fileReader.readAsText(blob);
});
}));
it('should bind onEventType listeners', function(done) {
let listenersCalled = 0;
testZone.run(function() {
fileReader.onloadstart = function() {
listenersCalled++;
expect(Zone.current).toBe(testZone);
};
fileReader.onload = function() {
listenersCalled++;
expect(Zone.current).toBe(testZone);
};
fileReader.onloadend = function() {
listenersCalled++;
expect(Zone.current).toBe(testZone);
expect(fileReader.result).toEqual(data);
expect(listenersCalled).toBe(3);
done();
};
});
fileReader.readAsText(blob);
});
it('should have correct readyState', function(done) {
fileReader.onloadend = function() {
expect(fileReader.readyState).toBe((<any>FileReader).DONE);
done();
};
expect(fileReader.readyState).toBe((<any>FileReader).EMPTY);
fileReader.readAsText(blob);
});
}));