From 666a09b6de6b1824a47b265761afa5681649abae Mon Sep 17 00:00:00 2001 From: Brent Burgoyne Date: Sat, 14 Jul 2018 00:30:26 -0600 Subject: [PATCH] fix rce image insertion when editing html fixes CORE-1625 test plan: - edit a wiki page - switch to html editor - upload multiple images from the sidebar - multiple uploads should work Change-Id: Iad9759ce73b7c2fd1ccd136269d4bd3fc2c99a60 Reviewed-on: https://gerrit.instructure.com/157401 Tested-by: Jenkins Reviewed-by: Clay Diffrient QA-Review: Jeremy Putnam Product-Review: Brent Burgoyne --- packages/canvas-rce/src/rce/RCEWrapper.js | 4 ++-- packages/canvas-rce/test/module/RCEWrapper.test.js | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/canvas-rce/src/rce/RCEWrapper.js b/packages/canvas-rce/src/rce/RCEWrapper.js index f94d08dc91f..cd5cc1b2aba 100644 --- a/packages/canvas-rce/src/rce/RCEWrapper.js +++ b/packages/canvas-rce/src/rce/RCEWrapper.js @@ -99,9 +99,9 @@ export default class RCEWrapper extends React.Component { insertImage(image) { const editor = this.mceInstance(); const element = contentInsertion.insertImage(editor, image); - if (element.complete) { + if (element && element.complete) { this.contentInserted(element); - } else { + } else if (element) { element.onload = () => this.contentInserted(element); element.onerror = () => this.checkImageLoadError(element); } diff --git a/packages/canvas-rce/test/module/RCEWrapper.test.js b/packages/canvas-rce/test/module/RCEWrapper.test.js index c33d52d2019..a14f11f5f2d 100644 --- a/packages/canvas-rce/test/module/RCEWrapper.test.js +++ b/packages/canvas-rce/test/module/RCEWrapper.test.js @@ -248,6 +248,14 @@ describe("RCEWrapper", () => { contentInsertion.insertLink.restore(); }); + describe("insert image", () => { + it("works when no element is returned from content insertion", () => { + sinon.stub(contentInsertion, "insertImage").returns(null); + instance.insertImage({}); + contentInsertion.insertImage.restore(); + }) + }) + describe("indicator", () => { it("does not indicate() if editor is hidden", () => { let indicateDefaultStub = sinon.stub(indicateModule, "default");