Skip to content

Commit 0ab2115

Browse files
committed
fix test
1 parent f90d3ba commit 0ab2115

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

modules/markup/internal/finalprocessor.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@ func (p *finalProcessor) Close() error {
4545
} else {
4646
part1, part2 = nil, buf
4747
}
48-
if _, err := p.output.Write(part1); err != nil {
49-
return err
48+
if len(part1) > 0 {
49+
if _, err := p.output.Write(part1); err != nil {
50+
return err
51+
}
5052
}
5153
if _, err := io.WriteString(p.output, string(p.extraHeadHTML)); err != nil {
5254
return err

tests/integration/markup_external_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,15 @@ func TestExternalMarkupRenderer(t *testing.T) {
6868
assert.Equal(t, "text/html; charset=utf-8", resp.Header().Get("Content-Type"))
6969
doc := NewHTMLParser(t, resp.Body)
7070
iframe := doc.Find("iframe")
71-
assert.Equal(t, "/user30/renderer/render/branch/master/README.html", iframe.AttrOr("src", ""))
71+
assert.Empty(t, iframe.AttrOr("src", "")) // src should be empty, "data-src" is used instead
72+
assert.Equal(t, "/user30/renderer/render/branch/master/README.html", iframe.AttrOr("data-src", ""))
7273

7374
req = NewRequest(t, "GET", "/user30/renderer/render/branch/master/README.html")
7475
resp = MakeRequest(t, req, http.StatusOK)
7576
assert.Equal(t, "text/html; charset=utf-8", resp.Header().Get("Content-Type"))
7677
bs, err := io.ReadAll(resp.Body)
7778
assert.NoError(t, err)
7879
assert.Equal(t, "frame-src 'self'; sandbox allow-scripts allow-popups", resp.Header().Get("Content-Security-Policy"))
79-
assert.Equal(t, "<div>\n\ttest external renderer\n</div>\n", string(bs))
80+
assert.Equal(t, "<script src=\"/assets/js/external-render-iframe.js\"></script><link rel=\"stylesheet\" href=\"/assets/css/external-render-iframe.css\"><div>\n\ttest external renderer\n</div>\n", string(bs))
8081
})
8182
}

web_src/js/standalone/external-render-iframe.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@ RENDER_COMMAND = `echo '<div style="width: 100%; height: 2000px; border: 10px so
1010

1111
function mainExternalRenderIframe() {
1212
const u = new URL(window.location.href);
13-
const fn = () => window.parent.postMessage({
13+
// iframe is in different origin, so we need to use postMessage to communicate height changes
14+
const updateIframeHeight = () => window.parent.postMessage({
1415
giteaIframeCmd: 'resize',
1516
giteaIframeId: u.searchParams.get('gitea-iframe-id'),
1617
giteaIframeHeight: document.documentElement.scrollHeight,
1718
}, '*');
18-
fn();
19-
window.addEventListener('DOMContentLoaded', fn);
20-
setInterval(fn, 1000);
19+
updateIframeHeight();
20+
window.addEventListener('DOMContentLoaded', updateIframeHeight);
21+
setInterval(updateIframeHeight, 1000); // the easiest way to handle dynamic content changes and easy to debug, can be fine-tuned in the future
2122

2223
// make all absolute links open in new window (otherwise they would be blocked by all parents' frame-src)
2324
document.body.addEventListener('click', (e) => {

0 commit comments

Comments
 (0)