Skip to content

Commit

Permalink
[fix] fix kernel error do not stop kernel switch bug
Browse files Browse the repository at this point in the history
  • Loading branch information
uc authored and uc committed Nov 28, 2017
1 parent 9bc39b3 commit fe841a9
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 22 deletions.
33 changes: 16 additions & 17 deletions __tests__/silentload.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ describe('$silentLoad', () => {
// oldVideo.dispatchEvent(new Event('timeupdate'));
// await expect(result).resolves.toBe();
// });


test('normal run', async () => {
const result = player.$silentLoad('http://cdn.toxicjohann.com/%E4%BA%8E%E6%98%AF.mp4');
await Promise.resolve();
Expand Down Expand Up @@ -228,23 +230,20 @@ describe('$silentLoad', () => {
expect(player.src).toBe('http://cdn.toxicjohann.com/lostStar.mp4');
expect(Log.data.error).toEqual([[ "chimee's silentload", 'MEDIA_ELEMENT_ERROR: Format error' ]]);
});
// test('kernel error', async () => {
// const result = player.$silentLoad('http://cdn.toxicjohann.com/%E4%BA%8E%E6%98%AF.mp4');
// await Promise.resolve();
// // simulate video error
// player.__dispatcher._silentLoadTempKernel.emit('error', {
// errmsg: 'test error',
// errno: 500,
// });
// await expect(result).rejects.toEqual({
// message: 'test error',
// code: 500,
// });
// expect(player.__dispatcher.kernel).toBe(oldKernel);
// expect(player.__dispatcher.dom.videoElement).toBe(oldVideo);
// expect(player.src).toBe('http://cdn.toxicjohann.com/lostStar.mp4');
// expect(Log.data.error).toEqual([[ "chimee's silentload", 'MEDIA_ELEMENT_ERROR: Format error' ]]);
// });
test('kernel error', async () => {
const result = player.$silentLoad('http://cdn.toxicjohann.com/%E4%BA%8E%E6%98%AF.mp4');
await Promise.resolve();
// simulate video error
player.__dispatcher._silentLoadTempKernel.emit('error', {
errmsg: 'test error',
errno: 500,
});
await expect(result).rejects.toEqual(new Error('test error'));
expect(player.__dispatcher.kernel).toBe(oldKernel);
expect(player.__dispatcher.dom.videoElement).toBe(oldVideo);
expect(player.src).toBe('http://cdn.toxicjohann.com/lostStar.mp4');
expect(Log.data.error).toEqual([[ "chimee's silent bump into a kernel error", 'test error' ]]);
});
test('error in repeat times', async () => {
const result = player.$silentLoad('http://cdn.toxicjohann.com/%E4%BA%8E%E6%98%AF.mp4', { repeatTimes: 1 });
await Promise.resolve();
Expand Down
6 changes: 1 addition & 5 deletions src/dispatcher/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -301,13 +301,9 @@ export default class Dispatcher {
if (evt.target === kernel) {
const {
errmsg: message,
errno: code,
} = evt.data;
Log.error("chimee's silent bump into a kernel error", message);
error = {
message,
code,
};
error = new Error(message);
} else {
error = !isEmpty(video.error)
? new Error(video.error.message)
Expand Down

0 comments on commit fe841a9

Please sign in to comment.