summaryrefslogtreecommitdiff
path: root/test/text.js
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-03-04 19:03:59 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-03-04 19:21:04 +0900
commitb99dc759e6709dffdcfb5da1df6365113f3f32ee (patch)
tree9d19f79a27a8dbd9976eefc3309f041653434ebd /test/text.js
parentMerge pull request #234 from syuilo/greenkeeper/request-2.80.0 (diff)
downloadmisskey-b99dc759e6709dffdcfb5da1df6365113f3f32ee.tar.gz
misskey-b99dc759e6709dffdcfb5da1df6365113f3f32ee.tar.bz2
misskey-b99dc759e6709dffdcfb5da1df6365113f3f32ee.zip
[Test] Fix test
Diffstat (limited to 'test/text.js')
-rw-r--r--test/text.js90
1 files changed, 90 insertions, 0 deletions
diff --git a/test/text.js b/test/text.js
new file mode 100644
index 0000000000..e2527cfe0b
--- /dev/null
+++ b/test/text.js
@@ -0,0 +1,90 @@
+/**
+ * Text Tests!
+ */
+
+const assert = require('assert');
+
+const analyze = require('../src/common/text');
+const syntaxhighlighter = require('../src/common/text/core/syntax-highlighter');
+
+describe('Text', () => {
+ it('is correctly analyzed', () => {
+ const tokens = analyze('@himawari お腹ペコい :cat: #yryr');
+ assert.deepEqual([
+ { type: 'mention', content: '@himawari', username: 'himawari' },
+ { type: 'text', content: ' お腹ペコい ' },
+ { type: 'emoji', content: ':cat:', emoji: 'cat'},
+ { type: 'text', content: ' '},
+ { type: 'hashtag', content: '#yryr', hashtag: 'yryr' }
+ ], tokens);
+ });
+
+ it('逆関数で正しく復元できる', () => {
+ const text = '@himawari お腹ペコい :cat: #yryr';
+ assert.equal(analyze(text).map(x => x.content).join(''), text);
+ });
+
+ describe('elements', () => {
+ it('bold', () => {
+ const tokens = analyze('**Strawberry** Pasta');
+ assert.deepEqual([
+ { type: 'bold', content: '**Strawberry**', bold: 'Strawberry' },
+ { type: 'text', content: ' Pasta' }
+ ], tokens);
+ });
+
+ it('mention', () => {
+ const tokens = analyze('@himawari お腹ペコい');
+ assert.deepEqual([
+ { type: 'mention', content: '@himawari', username: 'himawari' },
+ { type: 'text', content: ' お腹ペコい' }
+ ], tokens);
+ });
+
+ it('hashtag', () => {
+ const tokens = analyze('Strawberry Pasta #alice');
+ assert.deepEqual([
+ { type: 'text', content: 'Strawberry Pasta ' },
+ { type: 'hashtag', content: '#alice', hashtag: 'alice' }
+ ], tokens);
+ });
+
+ it('link', () => {
+ const tokens = analyze('https://himasaku.net');
+ assert.deepEqual([
+ { type: 'link', content: 'https://himasaku.net' }
+ ], tokens);
+ });
+
+ it('emoji', () => {
+ const tokens = analyze(':cat:');
+ assert.deepEqual([
+ { type: 'emoji', content: ':cat:', emoji: 'cat'}
+ ], tokens);
+ });
+
+ it('block code', () => {
+ const tokens = analyze('```\nvar x = "Strawberry Pasta";\n```');
+ assert.equal(tokens[0].type, 'code');
+ assert.equal(tokens[0].content, '```\nvar x = "Strawberry Pasta";\n```');
+ });
+
+ it('inline code', () => {
+ const tokens = analyze('`var x = "Strawberry Pasta";`');
+ assert.equal(tokens[0].type, 'inline-code');
+ assert.equal(tokens[0].content, '`var x = "Strawberry Pasta";`');
+ });
+ });
+
+ describe('syntax highlighting', () => {
+ it('regexp', () => {
+ const html = syntaxhighlighter('/.*/');
+ assert.equal(html, '<span class="regexp">/.*/</span>');
+ });
+
+ it('slash', () => {
+ const html = syntaxhighlighter('/');
+ assert.equal(html, '<span class="symbol">/</span>');
+ });
+ });
+});