From 800692d2939a7298f879b5f4b7b6533a11a491e7 Mon Sep 17 00:00:00 2001 From: Jeremy Press Date: Mon, 17 Jul 2017 09:38:58 -0700 Subject: [PATCH] Fix: Restore crawler for buffering video (#218) --- src/lib/PreviewUI.js | 7 +++++++ src/lib/__tests__/PreviewUI-test.js | 6 ++++++ src/lib/viewers/media/VideoBaseViewer.js | 2 ++ .../media/__tests__/VideoBaseViewer-test.js | 16 ++++++++++++++++ 4 files changed, 31 insertions(+) diff --git a/src/lib/PreviewUI.js b/src/lib/PreviewUI.js index b95a8ba42..cbebdcc40 100644 --- a/src/lib/PreviewUI.js +++ b/src/lib/PreviewUI.js @@ -14,6 +14,7 @@ import { SELECTOR_BOX_PREVIEW_BTN_PRINT, SELECTOR_BOX_PREVIEW_BTN_DOWNLOAD, SELECTOR_BOX_PREVIEW_BTN_LOADING_DOWNLOAD, + SELECTOR_BOX_PREVIEW_CRAWLER_WRAPPER, SELECTOR_BOX_PREVIEW_LOADING_TEXT, SELECTOR_BOX_PREVIEW_LOADING_WRAPPER, SELECTOR_BOX_PREVIEW_LOGO_CUSTOM, @@ -248,6 +249,12 @@ class PreviewUI { hideLoadingIndicator() { if (this.contentContainer) { this.contentContainer.classList.add(CLASS_PREVIEW_LOADED); + const crawler = this.contentContainer.querySelector(SELECTOR_BOX_PREVIEW_CRAWLER_WRAPPER); + if (crawler) { + // We need to remove this since it was hidden specially as a + // part of finishLoadingSetup in BaseViewer.js + crawler.classList.remove(CLASS_HIDDEN); + } } } diff --git a/src/lib/__tests__/PreviewUI-test.js b/src/lib/__tests__/PreviewUI-test.js index 0524eddd1..5c8807f5f 100644 --- a/src/lib/__tests__/PreviewUI-test.js +++ b/src/lib/__tests__/PreviewUI-test.js @@ -192,6 +192,12 @@ describe('lib/PreviewUI', () => { ui.hideLoadingIndicator(); expect(contentContainerEl).to.have.class(constants.CLASS_PREVIEW_LOADED); }); + + it('should remove the hidden class from the crawler', () => { + const crawlerEl = containerEl.querySelector(constants.SELECTOR_BOX_PREVIEW_CRAWLER_WRAPPER); + ui.hideLoadingIndicator(); + expect(crawlerEl).to.not.have.class(constants.CLASS_HIDDEN); + }); }); }); diff --git a/src/lib/viewers/media/VideoBaseViewer.js b/src/lib/viewers/media/VideoBaseViewer.js index 01d800110..3cef324c1 100644 --- a/src/lib/viewers/media/VideoBaseViewer.js +++ b/src/lib/viewers/media/VideoBaseViewer.js @@ -100,6 +100,7 @@ const CLASS_PLAY_BUTTON = 'bp-media-play-button'; pauseHandler() { super.pauseHandler(); this.showPlayButton(); + this.hideLoadingIcon(); } /** @@ -111,6 +112,7 @@ const CLASS_PLAY_BUTTON = 'bp-media-play-button'; waitingHandler() { if (this.containerEl) { this.containerEl.classList.add(CLASS_IS_BUFFERING); + this.hidePlayButton(); } } diff --git a/src/lib/viewers/media/__tests__/VideoBaseViewer-test.js b/src/lib/viewers/media/__tests__/VideoBaseViewer-test.js index ecb20b284..15de7b37f 100644 --- a/src/lib/viewers/media/__tests__/VideoBaseViewer-test.js +++ b/src/lib/viewers/media/__tests__/VideoBaseViewer-test.js @@ -164,6 +164,15 @@ describe('lib/viewers/media/VideoBaseViewer', () => { expect(videoBase.showPlayButton).to.be.called; }); + + it('should hide the loading icon', () => { + sandbox.stub(videoBase, 'hideLoadingIcon'); + videoBase.loadeddataHandler(); // load media controls UI + + videoBase.pauseHandler(); + + expect(videoBase.hideLoadingIcon).to.be.called; + }); }); describe('waitingHandler()', () => { @@ -171,6 +180,13 @@ describe('lib/viewers/media/VideoBaseViewer', () => { videoBase.waitingHandler(); expect(videoBase.containerEl.classList.contains('bp-is-buffering')); }); + + it('should hide the play button', () => { + sandbox.stub(videoBase, 'hidePlayButton'); + + videoBase.waitingHandler(); + expect(videoBase.hidePlayButton).to.be.called; + }); }); describe('addEventListenersForMediaControls()', () => {