/* 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' }, 'cs': { '∆': 'delta', '∞': 'nekonecno', '♥': 'laska', '&': 'a', '|': 'nebo', '<': 'mensi nez', '>': 'vetsi nez', '∑': '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(); }); });