mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-24 10:27:10 +02:00
3d8577a689
- For now, supports Markdown-it plugins - Also fixed slow rendering of notes in some cases - Simplified how Markdown-It plugins are created and cleaned MdToHtml code commit89576de289
Merge:c75aa21f
5292fc14
Author: Laurent Cozic <laurent@cozic.net> Date: Wed Oct 21 00:23:00 2020 +0100 Merge branch 'release-1.3' into plugin_content_scripts commitc75aa21ffd
Author: Laurent Cozic <laurent@cozic.net> Date: Wed Oct 21 00:19:52 2020 +0100 Fixed tests commit075187729d
Author: Laurent Cozic <laurent@cozic.net> Date: Wed Oct 21 00:11:53 2020 +0100 Fixed tests commit14696b8c65
Author: Laurent Cozic <laurent@cozic.net> Date: Tue Oct 20 23:27:58 2020 +0100 Fixed slow rendering of note commit61c09f5bf8
Author: Laurent Cozic <laurent@cozic.net> Date: Tue Oct 20 22:35:21 2020 +0100 Clean up commit9f7ea7d865
Author: Laurent Cozic <laurent@cozic.net> Date: Tue Oct 20 20:05:31 2020 +0100 Updated doc commit98bf3bde8d
Author: Laurent Cozic <laurent@cozic.net> Date: Tue Oct 20 19:56:34 2020 +0100 Finished converting plugins commitfe90d92e01
Author: Laurent Cozic <laurent@cozic.net> Date: Tue Oct 20 17:52:02 2020 +0100 Simplified how Markdown-It plugins are created commit47c7b864cb
Author: Laurent Cozic <laurent@cozic.net> Date: Mon Oct 19 16:40:11 2020 +0100 Clean up rules commitd927a238bb
Author: Laurent Cozic <laurent@cozic.net> Date: Mon Oct 19 14:29:40 2020 +0100 Fixed tests commit388a56c5dd
Author: Laurent Cozic <laurent@cozic.net> Date: Mon Oct 19 14:00:47 2020 +0100 Add support for content scripts
95 lines
3.3 KiB
JavaScript
95 lines
3.3 KiB
JavaScript
/* eslint-disable no-unused-vars */
|
|
|
|
require('app-module-path').addPath(__dirname);
|
|
|
|
const { extractExecutablePath, quotePath, unquotePath, friendlySafeFilename, toFileProtocolPath } = require('lib/path-utils');
|
|
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
|
|
|
process.on('unhandledRejection', (reason, p) => {
|
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
|
});
|
|
|
|
describe('pathUtils', function() {
|
|
|
|
beforeEach(async (done) => {
|
|
done();
|
|
});
|
|
|
|
it('should create friendly safe filename', asyncTest(async () => {
|
|
const testCases = [
|
|
['生活', '生活'],
|
|
['not/good', 'not_good'],
|
|
['really/not/good', 'really_not_good'],
|
|
['con', '___'],
|
|
['no space at the end ', 'no space at the end'],
|
|
['nor dots...', 'nor dots'],
|
|
[' no space before either', 'no space before either'],
|
|
['thatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylong', 'thatsreallylongthatsreallylongthatsreallylongthats'],
|
|
];
|
|
|
|
for (let i = 0; i < testCases.length; i++) {
|
|
const t = testCases[i];
|
|
expect(friendlySafeFilename(t[0])).toBe(t[1]);
|
|
}
|
|
|
|
expect(!!friendlySafeFilename('')).toBe(true);
|
|
expect(!!friendlySafeFilename('...')).toBe(true);
|
|
}));
|
|
|
|
it('should quote and unquote paths', asyncTest(async () => {
|
|
const testCases = [
|
|
['', ''],
|
|
['/my/path', '/my/path'],
|
|
['/my/path with spaces', '"/my/path with spaces"'],
|
|
['/my/weird"path', '"/my/weird\\"path"'],
|
|
['c:\\Windows\\test.dll', 'c:\\Windows\\test.dll'],
|
|
['c:\\Windows\\test test.dll', '"c:\\Windows\\test test.dll"'],
|
|
];
|
|
|
|
for (let i = 0; i < testCases.length; i++) {
|
|
const t = testCases[i];
|
|
expect(quotePath(t[0])).toBe(t[1]);
|
|
expect(unquotePath(quotePath(t[0]))).toBe(t[0]);
|
|
}
|
|
}));
|
|
|
|
it('should extract executable path from command', asyncTest(async () => {
|
|
const testCases = [
|
|
['', ''],
|
|
['/my/cmd -some -args', '/my/cmd'],
|
|
['"/my/cmd" -some -args', '"/my/cmd"'],
|
|
['"/my/cmd"', '"/my/cmd"'],
|
|
['"/my/cmd and space" -some -flags', '"/my/cmd and space"'],
|
|
['"" -some -flags', '""'],
|
|
];
|
|
|
|
for (let i = 0; i < testCases.length; i++) {
|
|
const t = testCases[i];
|
|
expect(extractExecutablePath(t[0])).toBe(t[1]);
|
|
}
|
|
}));
|
|
|
|
it('should create correct fileURL syntax', asyncTest(async () => {
|
|
const testCases_win32 = [
|
|
['C:\\handle\\space test', 'file:///C:/handle/space+test'],
|
|
['C:\\escapeplus\\+', 'file:///C:/escapeplus/%2B'],
|
|
['C:\\handle\\single quote\'', 'file:///C:/handle/single+quote%27'],
|
|
];
|
|
const testCases_unixlike = [
|
|
['/handle/space test', 'file:///handle/space+test'],
|
|
['/escapeplus/+', 'file:///escapeplus/%2B'],
|
|
['/handle/single quote\'', 'file:///handle/single+quote%27'],
|
|
];
|
|
|
|
for (let i = 0; i < testCases_win32.length; i++) {
|
|
const t = testCases_win32[i];
|
|
expect(toFileProtocolPath(t[0], 'win32')).toBe(t[1]);
|
|
}
|
|
for (let i = 0; i < testCases_unixlike.length; i++) {
|
|
const t = testCases_unixlike[i];
|
|
expect(toFileProtocolPath(t[0], 'linux')).toBe(t[1]);
|
|
}
|
|
}));
|
|
|
|
});
|