forked from adam-p/markdown-here
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix adam-p#297: Unrendering fails when replying to (visible) MDH email
- Loading branch information
Showing
4 changed files
with
98 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,7 +19,6 @@ describe('markdownHere', function() { | |
expect(window.MutationObserver || window.WebKitMutationObserver).to.be.ok; | ||
}); | ||
|
||
/* | ||
describe('markdownHere', function() { | ||
var userprefs = {}; | ||
var $testElem = null; | ||
|
@@ -48,9 +47,13 @@ describe('markdownHere', function() { | |
callback(renderedMarkdown, userprefs['main-css'] + userprefs['syntax-css']); | ||
}; | ||
|
||
var render = function(mdHTML, renderCompleteCallback) { | ||
var renderMD = function(mdHTML, renderCompleteCallback) { | ||
$testElem.html(mdHTML); | ||
$testElem.focus(); | ||
renderFocusedElem(renderCompleteCallback); | ||
}; | ||
|
||
var renderFocusedElem = function(renderCompleteCallback) { | ||
markdownHere( | ||
document, | ||
markdownRenderHelper, | ||
|
@@ -60,16 +63,54 @@ describe('markdownHere', function() { | |
|
||
// If there's no error, done has to be called with no argument. | ||
var doneCaller = function(expectedInnerHtml, done) { | ||
expectedInnerHtml = expectedInnerHtml.trim(); | ||
return function(elem) { | ||
MORE COMPLEX THAN THIS: Wrapper elem has data-md-url and data-md-original | ||
expect(elem.innerHTML).to.equal(expectedInnerHtml); | ||
var renderedHTMLRegex = /^<div class="markdown-here-wrapper" data-md-url="[^"]+">([\s\S]*)<div title="MDH:[\s\S]+">[\s\S]*<\/div><\/div>$/; | ||
var renderedHTML = elem.innerHTML.match(renderedHTMLRegex)[1]; | ||
renderedHTML = renderedHTML.trim(); | ||
expect(renderedHTML).to.equal(expectedInnerHtml); | ||
done(); | ||
}; | ||
}; | ||
|
||
it('should render simple MD', function(done) { | ||
render('_hi_', doneCaller(done)); | ||
var md = '_hi_'; | ||
var html = '<p><em>hi</em></p>'; | ||
renderMD(md, doneCaller(html, done)); | ||
}); | ||
|
||
it('should unrender simple MD', function(done) { | ||
var md = '_hi_'; | ||
|
||
// First render | ||
renderMD(md, function(elem) { | ||
// Then unrender | ||
$testElem.focus(); | ||
renderFocusedElem( | ||
function(elem) { | ||
expect(elem.innerHTML).to.equal(md); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
|
||
// Tests fix for https://github.com/adam-p/markdown-here/issues/297 | ||
// Attempting to unrender an email that was a reply to an email that was | ||
// itself MDH-rendered failed. | ||
it('should unrender a reply to a rendered email', function(done) { | ||
var replyMD = '_bye_'; | ||
var fullReplyMD = replyMD+'<br><div class="gmail_quote">On Fri, Aug 14, 2015 at 10:34 PM, Billy Bob <span dir="ltr"><<a href="mailto:[email protected]" target="_blank">[email protected]</a>></span> wrote:<br><blockquote><div class="markdown-here-wrapper" data-md-url="xxx"><p><em>hi</em></p>\n<div title="MDH:X2hpXw==" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;"></div></div></blockquote></div>'; | ||
// First render | ||
renderMD(fullReplyMD, function(elem) { | ||
// Then unrender | ||
$testElem.focus(); | ||
renderFocusedElem( | ||
function(elem) { | ||
expect(elem.innerHTML.slice(0, replyMD.length)).to.equal(replyMD); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
|
||
}); | ||
*/ | ||
}); |
Oops, something went wrong.