mattermost-desktop/test/specs/spellchecker_test.js
JtheBAB f6129c8253 Add pl-PL as spellchecker (#1155)
* Update contextMenu.js

* Update SpellChecker.js

* Update spellchecker_test.js

* Update test/specs/spellchecker_test.js

Co-Authored-By: Dean Whillier <deanwhillier@users.noreply.github.com>

Co-authored-by: Dean Whillier <deanwhillier@users.noreply.github.com>
2020-01-21 09:08:50 -05:00

153 lines
5.4 KiB
JavaScript

// Copyright (c) 2015-2016 Yuya Ochiai
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import path from 'path';
import SpellChecker from '../../src/main/SpellChecker';
describe('main/Spellchecker.js', function() {
describe('getSpellCheckerLocale()', () => {
it('should return recognized locale', () => {
SpellChecker.getSpellCheckerLocale('en').should.equal('en-US');
SpellChecker.getSpellCheckerLocale('en-US').should.equal('en-US');
SpellChecker.getSpellCheckerLocale('fr').should.equal('fr-FR');
SpellChecker.getSpellCheckerLocale('fr-FR').should.equal('fr-FR');
SpellChecker.getSpellCheckerLocale('de').should.equal('de-DE');
SpellChecker.getSpellCheckerLocale('de-DE').should.equal('de-DE');
SpellChecker.getSpellCheckerLocale('es').should.equal('es-ES');
SpellChecker.getSpellCheckerLocale('es-ES').should.equal('es-ES');
SpellChecker.getSpellCheckerLocale('nl').should.equal('nl-NL');
SpellChecker.getSpellCheckerLocale('nl-NL').should.equal('nl-NL');
SpellChecker.getSpellCheckerLocale('pl').should.equal('pl-PL');
SpellChecker.getSpellCheckerLocale('pl-PL').should.equal('pl-PL');
SpellChecker.getSpellCheckerLocale('pt').should.equal('pt-BR');
SpellChecker.getSpellCheckerLocale('pt-BR').should.equal('pt-BR');
SpellChecker.getSpellCheckerLocale('ja').should.equal('en-US');
SpellChecker.getSpellCheckerLocale('ja-JP').should.equal('en-US');
SpellChecker.getSpellCheckerLocale('it').should.equal('it-IT');
SpellChecker.getSpellCheckerLocale('it-IT').should.equal('it-IT');
});
});
describe('en-US', function() {
let spellchecker = null;
before(function(done) {
spellchecker = new SpellChecker(
'en-US',
path.resolve(__dirname, '../../src/node_modules/simple-spellchecker/dict'),
done
);
});
it('should spellcheck', function() {
// https://github.com/jfmdev/simple-spellchecker/issues/3
spellchecker.spellCheck('spell').should.equal(true);
spellchecker.spellCheck('spel').should.equal(false);
spellchecker.spellCheck('December').should.equal(true);
spellchecker.spellCheck('december').should.equal(true);
spellchecker.spellCheck('English').should.equal(true);
spellchecker.spellCheck('Japan').should.equal(true);
});
it('should allow contractions', function() {
spellchecker.spellCheck("shouldn't").should.equal(true);
spellchecker.spellCheck('shouldn').should.equal(true);
});
it('should allow numerals', function() {
spellchecker.spellCheck('1').should.equal(true);
spellchecker.spellCheck('-100').should.equal(true);
spellchecker.spellCheck('3.14').should.equal(true);
});
it('should allow "Mattermost"', function() {
spellchecker.spellCheck('Mattermost').should.equal(true);
spellchecker.spellCheck('mattermost').should.equal(true);
});
it('should give at most the requested number of suggestions', function() {
// helllo known to give at least 4 suggestions
spellchecker.getSuggestions('helllo', 4).length.should.be.equal(4);
spellchecker.getSuggestions('helllo', 1).length.should.be.equal(1);
});
it('should give suggestions which preserve case of first letter', function() {
let suggestions = spellchecker.getSuggestions('carr', 4);
suggestions.length.should.not.be.equal(0);
let i;
for (i = 0; i < suggestions.length; i++) {
suggestions[i].charAt(0).should.be.equal('c');
}
suggestions = spellchecker.getSuggestions('Carr', 4);
suggestions.length.should.not.be.equal(0);
for (i = 0; i < suggestions.length; i++) {
suggestions[i].charAt(0).should.be.equal('C');
}
});
});
describe('en-GB', function() {
let spellchecker = null;
before(function(done) {
spellchecker = new SpellChecker(
'en-GB',
path.resolve(__dirname, '../../src/node_modules/simple-spellchecker/dict'),
done
);
});
it('should allow contractions', function() {
spellchecker.spellCheck("shouldn't").should.equal(true);
spellchecker.spellCheck('shouldn').should.equal(true);
});
});
describe('de-DE', function() {
let spellchecker = null;
before(function(done) {
spellchecker = new SpellChecker(
'de-DE',
path.resolve(__dirname, '../../src/node_modules/simple-spellchecker/dict'),
done
);
});
it('should spellcheck', function() {
spellchecker.spellCheck('Guten').should.equal(true);
spellchecker.spellCheck('tag').should.equal(true);
});
it('should allow numerals', function() {
spellchecker.spellCheck('1').should.equal(true);
spellchecker.spellCheck('-100').should.equal(true);
spellchecker.spellCheck('3.14').should.equal(true);
});
it('should give suggestions which preserve case of first letter', function() {
let suggestions = spellchecker.getSuggestions('gutenn', 4);
suggestions.length.should.not.be.equal(0);
let i;
for (i = 0; i < suggestions.length; i++) {
suggestions[i].charAt(0).should.be.equal('g');
}
suggestions = spellchecker.getSuggestions('Gutenn', 4);
suggestions.length.should.not.be.equal(0);
for (i = 0; i < suggestions.length; i++) {
suggestions[i].charAt(0).should.be.equal('G');
}
});
});
});