dragonroll/backend/node_modules/speakingurl/test/test-language.js

305 lines
7.8 KiB
JavaScript

/* global describe,it */
var getSlug = require('../lib/speakingurl');
describe('getSlug languages', function () {
'use strict';
it('should replace language specific symbols', function (done) {
var symbolMap = {
'ar': {
'∆': 'delta',
'∞': 'la-nihaya',
'♥': 'hob',
'&': 'wa',
'|': 'aw',
'<': 'aqal-men',
'>': 'akbar-men',
'∑': 'majmou',
'¤': 'omla'
},
'cz': {
'∆': 'delta',
'∞': 'nekonecno',
'♥': 'laska',
'&': 'a',
'|': 'nebo',
'<': 'mene jako',
'>': 'vice jako',
'∑': 'soucet',
'¤': 'mena'
},
'de': {
'∆': 'delta',
'∞': 'unendlich',
'♥': 'Liebe',
'&': 'und',
'|': 'oder',
'<': 'kleiner als',
'>': 'groesser als',
'∑': 'Summe von',
'¤': 'Waehrung'
},
'en': {
'∆': 'delta',
'∞': 'infinity',
'♥': 'love',
'&': 'and',
'|': 'or',
'<': 'less than',
'>': 'greater than',
'∑': 'sum',
'¤': 'currency'
},
'es': {
'∆': 'delta',
'∞': 'infinito',
'♥': 'amor',
'&': 'y',
'|': 'u',
'<': 'menos que',
'>': 'mas que',
'∑': 'suma de los',
'¤': 'moneda'
},
'fr': {
'∆': 'delta',
'∞': 'infiniment',
'♥': 'Amour',
'&': 'et',
'|': 'ou',
'<': 'moins que',
'>': 'superieure a',
'∑': 'somme des',
'¤': 'monnaie'
},
'hu': {
'∆': 'delta',
'∞': 'vegtelen',
'♥': 'szerelem',
'&': 'es',
'|': 'vagy',
'<': 'kisebb mint',
'>': 'nagyobb mint',
'∑': 'szumma',
'¤': 'penznem'
},
'my': {
'∆': 'kwahkhyaet',
'∞': 'asaonasme',
'♥': 'akhyait',
'&': 'nhin',
'|': 'tho',
'<': 'ngethaw',
'>': 'kyithaw',
'∑': 'paungld',
'¤': 'ngwekye'
},
'nl': {
'∆': 'delta',
'∞': 'oneindig',
'♥': 'liefde',
'&': 'en',
'|': 'of',
'<': 'kleiner dan',
'>': 'groter dan',
'∑': 'som',
'¤': 'valuta'
},
'it': {
'∆': 'delta',
'∞': 'infinito',
'♥': 'amore',
'&': 'e',
'|': 'o',
'<': 'minore di',
'>': 'maggiore di',
'∑': 'somma',
'¤': 'moneta'
},
'pl': {
'∆': 'delta',
'∞': 'nieskonczonosc',
'♥': 'milosc',
'&': 'i',
'|': 'lub',
'<': 'mniejsze niz',
'>': 'wieksze niz',
'∑': 'suma',
'¤': 'waluta'
},
'pt': {
'∆': 'delta',
'∞': 'infinito',
'♥': 'amor',
'&': 'e',
'|': 'ou',
'<': 'menor que',
'>': 'maior que',
'∑': 'soma',
'¤': 'moeda'
},
'ru': {
'∆': 'delta',
'∞': 'beskonechno',
'♥': 'lubov',
'&': 'i',
'|': 'ili',
'<': 'menshe',
'>': 'bolshe',
'∑': 'summa',
'¤': 'valjuta'
},
'sk': {
'∆': 'delta',
'∞': 'nekonecno',
'♥': 'laska',
'&': 'a',
'|': 'alebo',
'<': 'menej ako',
'>': 'viac ako',
'∑': 'sucet',
'¤': 'mena'
},
'tr': {
'∆': 'delta',
'∞': 'sonsuzluk',
'♥': 'ask',
'&': 've',
'|': 'veya',
'<': 'kucuktur',
'>': 'buyuktur',
'∑': 'toplam',
'¤': 'para birimi'
},
'vn': {
'∆': 'delta',
'∞': 'vo cuc',
'♥': 'yeu',
'&': 'va',
'|': 'hoac',
'<': 'nho hon',
'>': 'lon hon',
'∑': 'tong',
'¤': 'tien te'
}
};
Object.keys(symbolMap)
.forEach(function (l) {
// console.log('\ncheck language: ' + l);
Object.keys(symbolMap[l])
.forEach(function (s) {
var k = symbolMap[l][s];
// console.log('check symbol: ' + s);
getSlug('Foo ' + s + ' Bar', {
lang: l,
maintainCase: true
})
.should.eql('Foo-' + getSlug(k, {
maintainCase: true
}) + '-Bar');
getSlug('Foo ' + s + ' Bar', {
lang: l
})
.should.eql('foo-' + getSlug(k) + '-bar');
});
});
getSlug('EN Foo & Bar ')
.should.eql('en-foo-and-bar');
getSlug('EN Foo & Bar ', {
lang: "en"
})
.should.eql('en-foo-and-bar');
getSlug('de Foo & Bar ', {
lang: "de"
})
.should.eql('de-foo-und-bar');
getSlug('True Foo & Bar ', {
lang: true
})
.should.eql('true-foo-and-bar');
getSlug('False Foo & Bar ', {
lang: false
})
.should.eql('false-foo-bar');
getSlug('False Foo & Bar ', {
lang: false,
symbols: true
})
.should.eql('false-foo-bar');
getSlug('xx Foo & Bar ', {
lang: "xx"
})
.should.eql('xx-foo-and-bar');
getSlug('obj Foo & Bar ', {
lang: {}
})
.should.eql('obj-foo-and-bar');
getSlug('array Foo & Bar ', {
lang: []
})
.should.eql('array-foo-and-bar');
getSlug('array Foo & Bar ', {
lang: [],
symbols: false
})
.should.eql('array-foo-bar');
getSlug('null Foo & Bar ', {
lang: null
})
.should.eql('null-foo-and-bar');
getSlug('null Foo & Bar ', {
lang: null,
symbols: false
})
.should.eql('null-foo-bar');
getSlug('null Foo & Bar ', {
lang: null,
symbols: true
})
.should.eql('null-foo-and-bar');
done();
});
});