You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
304 lines
7.8 KiB
304 lines
7.8 KiB
/* 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(); |
|
|
|
}); |
|
}); |