305 lines
7.8 KiB
JavaScript
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();
|
|
|
|
});
|
|
});
|