diff --git a/common/lib/xmodule/xmodule/js/spec/video/initialize_spec.js b/common/lib/xmodule/xmodule/js/spec/video/initialize_spec.js index 75c1247061..6177d4303c 100644 --- a/common/lib/xmodule/xmodule/js/spec/video/initialize_spec.js +++ b/common/lib/xmodule/xmodule/js/spec/video/initialize_spec.js @@ -110,6 +110,20 @@ function (Initialize) { }); }); + it('data contains position 0, async is true', function () { + itSpec({ + asyncVal: true, + speedVal: undefined, + positionVal: 0, + data: { + saved_video_position: 0 + }, + ajaxData: { + saved_video_position: Time.formatFull(Math.round(0)) + } + }); + }); + return; function itSpec(value) { diff --git a/common/lib/xmodule/xmodule/js/src/video/01_initialize.js b/common/lib/xmodule/xmodule/js/src/video/01_initialize.js index 9b4e6be7bf..8ab4e0b785 100644 --- a/common/lib/xmodule/xmodule/js/src/video/01_initialize.js +++ b/common/lib/xmodule/xmodule/js/src/video/01_initialize.js @@ -674,6 +674,7 @@ function (VideoPlayer, VideoStorage) { } function saveState(async, data) { + if (!($.isPlainObject(data))) { data = { saved_video_position: this.videoPlayer.currentTime @@ -684,7 +685,7 @@ function (VideoPlayer, VideoStorage) { this.storage.setItem('speed', data.speed, true); } - if (data.saved_video_position) { + if (data.hasOwnProperty('saved_video_position')) { this.storage.setItem('savedVideoPosition', data.saved_video_position, true); data.saved_video_position = Time.formatFull(data.saved_video_position);