diff --git a/common/lib/xmodule/xmodule/js/fixtures/html-edit-with-links.html b/common/lib/xmodule/xmodule/js/fixtures/html-edit-with-links.html new file mode 100644 index 0000000000..46d6313699 --- /dev/null +++ b/common/lib/xmodule/xmodule/js/fixtures/html-edit-with-links.html @@ -0,0 +1,10 @@ +
+ +
+ + +
+
\ No newline at end of file diff --git a/common/lib/xmodule/xmodule/js/spec/html/edit_spec.coffee b/common/lib/xmodule/xmodule/js/spec/html/edit_spec.coffee index 554235ef9c..337ea55030 100644 --- a/common/lib/xmodule/xmodule/js/spec/html/edit_spec.coffee +++ b/common/lib/xmodule/xmodule/js/spec/html/edit_spec.coffee @@ -48,6 +48,16 @@ describe 'HTMLEditingDescriptor', -> expect(@descriptor.showingVisualEditor).toEqual(true) data = @descriptor.save().data expect(data).toEqual('from visual editor') + it 'Performs link rewriting for static assets when saving', -> + visualEditorStub = + isDirty: () -> true + getContent: () -> 'from visual editor with /c4x/foo/bar/asset/image.jpg' + spyOn(@descriptor, 'getVisualEditor').andCallFake () -> + visualEditorStub + expect(@descriptor.showingVisualEditor).toEqual(true) + @descriptor.base_asset_url = '/c4x/foo/bar/asset/' + data = @descriptor.save().data + expect(data).toEqual('from visual editor with /static/image.jpg') describe 'Can switch to Advanced Editor', -> beforeEach -> loadFixtures 'html-edit.html' @@ -88,3 +98,23 @@ describe 'HTMLEditingDescriptor', -> expect(visualEditorStub.isDirty()).toEqual(false) expect(visualEditorStub.getContent()).toEqual('Advanced Editor Text') expect(visualEditorStub.startContent).toEqual('Advanced Editor Text') + it 'When switching to Advanced Editors links are rewritten to c4x format', -> + loadFixtures 'html-edit-with-links.html' + @descriptor = new HTMLEditingDescriptor($('.html-edit')) + @descriptor.base_asset_url = '/c4x/foo/bar/asset/' + @descriptor.showingVisualEditor = false + + visualEditorStub = + isNotDirty: false + content: 'not set' + startContent: 'not set', + focus: () -> true + isDirty: () -> not @isNotDirty + setContent: (x) -> @content = x + getContent: -> @content + + @descriptor.showVisualEditor(visualEditorStub) + expect(@descriptor.showingVisualEditor).toEqual(true) + expect(visualEditorStub.isDirty()).toEqual(false) + expect(visualEditorStub.getContent()).toEqual('Advanced Editor Text with link /c4x/foo/bar/asset/dummy.jpg') + expect(visualEditorStub.startContent).toEqual('Advanced Editor Text with link /c4x/foo/bar/asset/dummy.jpg') \ No newline at end of file