mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-20 02:08:47 +00:00
@@ -10,6 +10,7 @@ import { marked } from 'vs/base/common/marked/marked';
|
|||||||
import { parse } from 'vs/base/common/marshalling';
|
import { parse } from 'vs/base/common/marshalling';
|
||||||
import { isWeb } from 'vs/base/common/platform';
|
import { isWeb } from 'vs/base/common/platform';
|
||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
|
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
|
||||||
|
|
||||||
function strToNode(str: string): HTMLElement {
|
function strToNode(str: string): HTMLElement {
|
||||||
return new DOMParser().parseFromString(str, 'text/html').body.firstChild as HTMLElement;
|
return new DOMParser().parseFromString(str, 'text/html').body.firstChild as HTMLElement;
|
||||||
@@ -23,10 +24,13 @@ function assertNodeEquals(actualNode: HTMLElement, expectedHtml: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
suite('MarkdownRenderer', () => {
|
suite('MarkdownRenderer', () => {
|
||||||
|
|
||||||
|
const store = ensureNoDisposablesAreLeakedInTestSuite();
|
||||||
|
|
||||||
suite('Sanitization', () => {
|
suite('Sanitization', () => {
|
||||||
test('Should not render images with unknown schemes', () => {
|
test('Should not render images with unknown schemes', () => {
|
||||||
const markdown = { value: `` };
|
const markdown = { value: `` };
|
||||||
const result: HTMLElement = renderMarkdown(markdown).element;
|
const result: HTMLElement = store.add(renderMarkdown(markdown)).element;
|
||||||
assert.strictEqual(result.innerHTML, '<p><img alt="image"></p>');
|
assert.strictEqual(result.innerHTML, '<p><img alt="image"></p>');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -34,28 +38,28 @@ suite('MarkdownRenderer', () => {
|
|||||||
suite('Images', () => {
|
suite('Images', () => {
|
||||||
test('image rendering conforms to default', () => {
|
test('image rendering conforms to default', () => {
|
||||||
const markdown = { value: `` };
|
const markdown = { value: `` };
|
||||||
const result: HTMLElement = renderMarkdown(markdown).element;
|
const result: HTMLElement = store.add(renderMarkdown(markdown)).element;
|
||||||
assertNodeEquals(result, '<div><p><img title="caption" alt="image" src="http://example.com/cat.gif"></p></div>');
|
assertNodeEquals(result, '<div><p><img title="caption" alt="image" src="http://example.com/cat.gif"></p></div>');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('image rendering conforms to default without title', () => {
|
test('image rendering conforms to default without title', () => {
|
||||||
const markdown = { value: `` };
|
const markdown = { value: `` };
|
||||||
const result: HTMLElement = renderMarkdown(markdown).element;
|
const result: HTMLElement = store.add(renderMarkdown(markdown)).element;
|
||||||
assertNodeEquals(result, '<div><p><img alt="image" src="http://example.com/cat.gif"></p></div>');
|
assertNodeEquals(result, '<div><p><img alt="image" src="http://example.com/cat.gif"></p></div>');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('image width from title params', () => {
|
test('image width from title params', () => {
|
||||||
const result: HTMLElement = renderMarkdown({ value: `` }).element;
|
const result: HTMLElement = store.add(renderMarkdown({ value: `` })).element;
|
||||||
assertNodeEquals(result, `<div><p><img width="100" title="caption" alt="image" src="http://example.com/cat.gif"></p></div>`);
|
assertNodeEquals(result, `<div><p><img width="100" title="caption" alt="image" src="http://example.com/cat.gif"></p></div>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('image height from title params', () => {
|
test('image height from title params', () => {
|
||||||
const result: HTMLElement = renderMarkdown({ value: `` }).element;
|
const result: HTMLElement = store.add(renderMarkdown({ value: `` })).element;
|
||||||
assertNodeEquals(result, `<div><p><img height="100" title="caption" alt="image" src="http://example.com/cat.gif"></p></div>`);
|
assertNodeEquals(result, `<div><p><img height="100" title="caption" alt="image" src="http://example.com/cat.gif"></p></div>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('image width and height from title params', () => {
|
test('image width and height from title params', () => {
|
||||||
const result: HTMLElement = renderMarkdown({ value: `` }).element;
|
const result: HTMLElement = store.add(renderMarkdown({ value: `` })).element;
|
||||||
assertNodeEquals(result, `<div><p><img height="200" width="100" title="caption" alt="image" src="http://example.com/cat.gif"></p></div>`);
|
assertNodeEquals(result, `<div><p><img height="200" width="100" title="caption" alt="image" src="http://example.com/cat.gif"></p></div>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -63,7 +67,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
if (isWeb) {
|
if (isWeb) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const result: HTMLElement = renderMarkdown({ value: `` }).element;
|
const result: HTMLElement = store.add(renderMarkdown({ value: `` })).element;
|
||||||
assertNodeEquals(result, '<div><p><img src="vscode-file://vscode-app/images/cat.gif" alt="image"></p></div>');
|
assertNodeEquals(result, '<div><p><img src="vscode-file://vscode-app/images/cat.gif" alt="image"></p></div>');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -78,10 +82,10 @@ suite('MarkdownRenderer', () => {
|
|||||||
test('asyncRenderCallback should be invoked for code blocks', () => {
|
test('asyncRenderCallback should be invoked for code blocks', () => {
|
||||||
const markdown = { value: '```js\n1 + 1;\n```' };
|
const markdown = { value: '```js\n1 + 1;\n```' };
|
||||||
return new Promise<void>(resolve => {
|
return new Promise<void>(resolve => {
|
||||||
renderMarkdown(markdown, {
|
store.add(renderMarkdown(markdown, {
|
||||||
asyncRenderCallback: resolve,
|
asyncRenderCallback: resolve,
|
||||||
codeBlockRenderer: simpleCodeBlockRenderer
|
codeBlockRenderer: simpleCodeBlockRenderer
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -120,12 +124,12 @@ suite('MarkdownRenderer', () => {
|
|||||||
test('Code blocks should use leading language id (#157793)', async () => {
|
test('Code blocks should use leading language id (#157793)', async () => {
|
||||||
const markdown = { value: '```js some other stuff\n1 + 1;\n```' };
|
const markdown = { value: '```js some other stuff\n1 + 1;\n```' };
|
||||||
const lang = await new Promise<string>(resolve => {
|
const lang = await new Promise<string>(resolve => {
|
||||||
renderMarkdown(markdown, {
|
store.add(renderMarkdown(markdown, {
|
||||||
codeBlockRenderer: async (lang, value) => {
|
codeBlockRenderer: async (lang, value) => {
|
||||||
resolve(lang);
|
resolve(lang);
|
||||||
return simpleCodeBlockRenderer(lang, value);
|
return simpleCodeBlockRenderer(lang, value);
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
assert.strictEqual(lang, 'js');
|
assert.strictEqual(lang, 'js');
|
||||||
});
|
});
|
||||||
@@ -137,7 +141,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportThemeIcons: true });
|
const mds = new MarkdownString(undefined, { supportThemeIcons: true });
|
||||||
mds.appendText('$(zap) $(not a theme icon) $(add)');
|
mds.appendText('$(zap) $(not a theme icon) $(add)');
|
||||||
|
|
||||||
const result: HTMLElement = renderMarkdown(mds).element;
|
const result: HTMLElement = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p>$(zap) $(not a theme icon) $(add)</p>`);
|
assert.strictEqual(result.innerHTML, `<p>$(zap) $(not a theme icon) $(add)</p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -145,7 +149,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportThemeIcons: true });
|
const mds = new MarkdownString(undefined, { supportThemeIcons: true });
|
||||||
mds.appendMarkdown('$(zap) $(not a theme icon) $(add)');
|
mds.appendMarkdown('$(zap) $(not a theme icon) $(add)');
|
||||||
|
|
||||||
const result: HTMLElement = renderMarkdown(mds).element;
|
const result: HTMLElement = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p><span class="codicon codicon-zap"></span> $(not a theme icon) <span class="codicon codicon-add"></span></p>`);
|
assert.strictEqual(result.innerHTML, `<p><span class="codicon codicon-zap"></span> $(not a theme icon) <span class="codicon codicon-add"></span></p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -153,7 +157,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportThemeIcons: true });
|
const mds = new MarkdownString(undefined, { supportThemeIcons: true });
|
||||||
mds.appendMarkdown('\\$(zap) $(not a theme icon) $(add)');
|
mds.appendMarkdown('\\$(zap) $(not a theme icon) $(add)');
|
||||||
|
|
||||||
const result: HTMLElement = renderMarkdown(mds).element;
|
const result: HTMLElement = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p>$(zap) $(not a theme icon) <span class="codicon codicon-add"></span></p>`);
|
assert.strictEqual(result.innerHTML, `<p>$(zap) $(not a theme icon) <span class="codicon codicon-add"></span></p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -161,7 +165,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportThemeIcons: true });
|
const mds = new MarkdownString(undefined, { supportThemeIcons: true });
|
||||||
mds.appendMarkdown(`[$(zap)-link](#link)`);
|
mds.appendMarkdown(`[$(zap)-link](#link)`);
|
||||||
|
|
||||||
const result: HTMLElement = renderMarkdown(mds).element;
|
const result: HTMLElement = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p><a data-href="#link" href="" title="#link"><span class="codicon codicon-zap"></span>-link</a></p>`);
|
assert.strictEqual(result.innerHTML, `<p><a data-href="#link" href="" title="#link"><span class="codicon codicon-zap"></span>-link</a></p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -172,7 +176,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
|--------|----------------------|
|
|--------|----------------------|
|
||||||
| $(zap) | [$(zap)-link](#link) |`);
|
| $(zap) | [$(zap)-link](#link) |`);
|
||||||
|
|
||||||
const result: HTMLElement = renderMarkdown(mds).element;
|
const result: HTMLElement = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<table>
|
assert.strictEqual(result.innerHTML, `<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -192,7 +196,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportThemeIcons: true, supportHtml: true });
|
const mds = new MarkdownString(undefined, { supportThemeIcons: true, supportHtml: true });
|
||||||
mds.appendMarkdown(`<a>$(sync)</a>`);
|
mds.appendMarkdown(`<a>$(sync)</a>`);
|
||||||
|
|
||||||
const result: HTMLElement = renderMarkdown(mds).element;
|
const result: HTMLElement = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p><span class="codicon codicon-sync"></span></p>`);
|
assert.strictEqual(result.innerHTML, `<p><span class="codicon codicon-sync"></span></p>`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -203,7 +207,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportThemeIcons: false });
|
const mds = new MarkdownString(undefined, { supportThemeIcons: false });
|
||||||
mds.appendText('$(zap) $(not a theme icon) $(add)');
|
mds.appendText('$(zap) $(not a theme icon) $(add)');
|
||||||
|
|
||||||
const result: HTMLElement = renderMarkdown(mds).element;
|
const result: HTMLElement = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p>$(zap) $(not a theme icon) $(add)</p>`);
|
assert.strictEqual(result.innerHTML, `<p>$(zap) $(not a theme icon) $(add)</p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -211,7 +215,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportThemeIcons: false });
|
const mds = new MarkdownString(undefined, { supportThemeIcons: false });
|
||||||
mds.appendMarkdown('\\$(zap) $(not a theme icon) $(add)');
|
mds.appendMarkdown('\\$(zap) $(not a theme icon) $(add)');
|
||||||
|
|
||||||
const result: HTMLElement = renderMarkdown(mds).element;
|
const result: HTMLElement = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p>$(zap) $(not a theme icon) $(add)</p>`);
|
assert.strictEqual(result.innerHTML, `<p>$(zap) $(not a theme icon) $(add)</p>`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -219,7 +223,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
test('npm Hover Run Script not working #90855', function () {
|
test('npm Hover Run Script not working #90855', function () {
|
||||||
|
|
||||||
const md: IMarkdownString = JSON.parse('{"value":"[Run Script](command:npm.runScriptFromHover?%7B%22documentUri%22%3A%7B%22%24mid%22%3A1%2C%22fsPath%22%3A%22c%3A%5C%5CUsers%5C%5Cjrieken%5C%5CCode%5C%5C_sample%5C%5Cfoo%5C%5Cpackage.json%22%2C%22_sep%22%3A1%2C%22external%22%3A%22file%3A%2F%2F%2Fc%253A%2FUsers%2Fjrieken%2FCode%2F_sample%2Ffoo%2Fpackage.json%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fjrieken%2FCode%2F_sample%2Ffoo%2Fpackage.json%22%2C%22scheme%22%3A%22file%22%7D%2C%22script%22%3A%22echo%22%7D \\"Run the script as a task\\")","supportThemeIcons":false,"isTrusted":true,"uris":{"__uri_e49443":{"$mid":1,"fsPath":"c:\\\\Users\\\\jrieken\\\\Code\\\\_sample\\\\foo\\\\package.json","_sep":1,"external":"file:///c%3A/Users/jrieken/Code/_sample/foo/package.json","path":"/c:/Users/jrieken/Code/_sample/foo/package.json","scheme":"file"},"command:npm.runScriptFromHover?%7B%22documentUri%22%3A%7B%22%24mid%22%3A1%2C%22fsPath%22%3A%22c%3A%5C%5CUsers%5C%5Cjrieken%5C%5CCode%5C%5C_sample%5C%5Cfoo%5C%5Cpackage.json%22%2C%22_sep%22%3A1%2C%22external%22%3A%22file%3A%2F%2F%2Fc%253A%2FUsers%2Fjrieken%2FCode%2F_sample%2Ffoo%2Fpackage.json%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fjrieken%2FCode%2F_sample%2Ffoo%2Fpackage.json%22%2C%22scheme%22%3A%22file%22%7D%2C%22script%22%3A%22echo%22%7D":{"$mid":1,"path":"npm.runScriptFromHover","scheme":"command","query":"{\\"documentUri\\":\\"__uri_e49443\\",\\"script\\":\\"echo\\"}"}}}');
|
const md: IMarkdownString = JSON.parse('{"value":"[Run Script](command:npm.runScriptFromHover?%7B%22documentUri%22%3A%7B%22%24mid%22%3A1%2C%22fsPath%22%3A%22c%3A%5C%5CUsers%5C%5Cjrieken%5C%5CCode%5C%5C_sample%5C%5Cfoo%5C%5Cpackage.json%22%2C%22_sep%22%3A1%2C%22external%22%3A%22file%3A%2F%2F%2Fc%253A%2FUsers%2Fjrieken%2FCode%2F_sample%2Ffoo%2Fpackage.json%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fjrieken%2FCode%2F_sample%2Ffoo%2Fpackage.json%22%2C%22scheme%22%3A%22file%22%7D%2C%22script%22%3A%22echo%22%7D \\"Run the script as a task\\")","supportThemeIcons":false,"isTrusted":true,"uris":{"__uri_e49443":{"$mid":1,"fsPath":"c:\\\\Users\\\\jrieken\\\\Code\\\\_sample\\\\foo\\\\package.json","_sep":1,"external":"file:///c%3A/Users/jrieken/Code/_sample/foo/package.json","path":"/c:/Users/jrieken/Code/_sample/foo/package.json","scheme":"file"},"command:npm.runScriptFromHover?%7B%22documentUri%22%3A%7B%22%24mid%22%3A1%2C%22fsPath%22%3A%22c%3A%5C%5CUsers%5C%5Cjrieken%5C%5CCode%5C%5C_sample%5C%5Cfoo%5C%5Cpackage.json%22%2C%22_sep%22%3A1%2C%22external%22%3A%22file%3A%2F%2F%2Fc%253A%2FUsers%2Fjrieken%2FCode%2F_sample%2Ffoo%2Fpackage.json%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fjrieken%2FCode%2F_sample%2Ffoo%2Fpackage.json%22%2C%22scheme%22%3A%22file%22%7D%2C%22script%22%3A%22echo%22%7D":{"$mid":1,"path":"npm.runScriptFromHover","scheme":"command","query":"{\\"documentUri\\":\\"__uri_e49443\\",\\"script\\":\\"echo\\"}"}}}');
|
||||||
const element = renderMarkdown(md).element;
|
const element = store.add(renderMarkdown(md)).element;
|
||||||
|
|
||||||
const anchor = element.querySelector('a')!;
|
const anchor = element.querySelector('a')!;
|
||||||
assert.ok(anchor);
|
assert.ok(anchor);
|
||||||
@@ -238,7 +242,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
supportHtml: true
|
supportHtml: true
|
||||||
});
|
});
|
||||||
|
|
||||||
const result: HTMLElement = renderMarkdown(md).element;
|
const result: HTMLElement = store.add(renderMarkdown(md)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p>command1 command2</p>`);
|
assert.strictEqual(result.innerHTML, `<p>command1 command2</p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -248,7 +252,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
supportHtml: true,
|
supportHtml: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const result: HTMLElement = renderMarkdown(md).element;
|
const result: HTMLElement = store.add(renderMarkdown(md)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p><a data-href="command:doFoo" href="" title="command:doFoo">command1</a> <a data-href="command:doFoo" href="">command2</a></p>`);
|
assert.strictEqual(result.innerHTML, `<p><a data-href="command:doFoo" href="" title="command:doFoo">command1</a> <a data-href="command:doFoo" href="">command2</a></p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -274,7 +278,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, {});
|
const mds = new MarkdownString(undefined, {});
|
||||||
mds.appendMarkdown('a<b>b</b>c');
|
mds.appendMarkdown('a<b>b</b>c');
|
||||||
|
|
||||||
const result = renderMarkdown(mds).element;
|
const result = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p>abc</p>`);
|
assert.strictEqual(result.innerHTML, `<p>abc</p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -282,7 +286,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportHtml: true });
|
const mds = new MarkdownString(undefined, { supportHtml: true });
|
||||||
mds.appendMarkdown('a<b>b</b>c');
|
mds.appendMarkdown('a<b>b</b>c');
|
||||||
|
|
||||||
const result = renderMarkdown(mds).element;
|
const result = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p>a<b>b</b>c</p>`);
|
assert.strictEqual(result.innerHTML, `<p>a<b>b</b>c</p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -290,7 +294,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportHtml: true });
|
const mds = new MarkdownString(undefined, { supportHtml: true });
|
||||||
mds.appendMarkdown('a<b onclick="alert(1)">b</b><script>alert(2)</script>c');
|
mds.appendMarkdown('a<b onclick="alert(1)">b</b><script>alert(2)</script>c');
|
||||||
|
|
||||||
const result = renderMarkdown(mds).element;
|
const result = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p>a<b>b</b>c</p>`);
|
assert.strictEqual(result.innerHTML, `<p>a<b>b</b>c</p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -298,7 +302,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportHtml: true });
|
const mds = new MarkdownString(undefined, { supportHtml: true });
|
||||||
mds.appendText('a<b>b</b>c');
|
mds.appendText('a<b>b</b>c');
|
||||||
|
|
||||||
const result = renderMarkdown(mds).element;
|
const result = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<p>a<b>b</b>c</p>`);
|
assert.strictEqual(result.innerHTML, `<p>a<b>b</b>c</p>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -310,7 +314,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportHtml: true });
|
const mds = new MarkdownString(undefined, { supportHtml: true });
|
||||||
mds.appendMarkdown(`<img src="http://example.com/cat.gif">`);
|
mds.appendMarkdown(`<img src="http://example.com/cat.gif">`);
|
||||||
|
|
||||||
const result = renderMarkdown(mds).element;
|
const result = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<img src="http://example.com/cat.gif">`);
|
assert.strictEqual(result.innerHTML, `<img src="http://example.com/cat.gif">`);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -322,7 +326,7 @@ suite('MarkdownRenderer', () => {
|
|||||||
const mds = new MarkdownString(undefined, { supportHtml: true });
|
const mds = new MarkdownString(undefined, { supportHtml: true });
|
||||||
mds.appendMarkdown(`<img src="file:///images/cat.gif">`);
|
mds.appendMarkdown(`<img src="file:///images/cat.gif">`);
|
||||||
|
|
||||||
const result = renderMarkdown(mds).element;
|
const result = store.add(renderMarkdown(mds)).element;
|
||||||
assert.strictEqual(result.innerHTML, `<img src="vscode-file://vscode-app/images/cat.gif">`);
|
assert.strictEqual(result.innerHTML, `<img src="vscode-file://vscode-app/images/cat.gif">`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user