Download ADOOR_ACE/node_modules/accept-language-parser/tests/tests.js from thisisAce/adoor-store: direct link, hf CLI and curl.
- Browser
- Download file 6 kB
-
https://huggingface.co/thisisAce/adoor-store/resolve/main/ADOOR_ACE/node_modules/accept-language-parser/tests/tests.js
- Command line
-
hf download hf://thisisAce/adoor-store/ADOOR_ACE/node_modules/accept-language-parser/tests/tests.js
-
curl -L -o tests.js https://huggingface.co/thisisAce/adoor-store/resolve/main/ADOOR_ACE/node_modules/accept-language-parser/tests/tests.js
6 kB
| var parser = require("../index.js"); | |
| var assert = require("assert"); | |
| var should = require("should"); | |
| var assertResult = function(expected, actual){ | |
| actual.code.should.eql(expected.code); | |
| if(actual.script || expected.script){ | |
| actual.script.should.eql(expected.script) | |
| } | |
| if(actual.region || expected.region){ | |
| actual.region.should.eql(expected.region) | |
| } | |
| actual.quality.should.eql(expected.quality); | |
| } | |
| describe('accept-language#parse()', function(){ | |
| it('should correctly parse the language with quality', function(){ | |
| var result = parser.parse('en-GB;q=0.8'); | |
| assertResult({ code: 'en', region: 'GB', quality: 0.8}, result[0]); | |
| }); | |
| it('should correctly parse the language without quality (default 1)', function(){ | |
| var result = parser.parse('en-GB'); | |
| assertResult({ code: 'en', region: 'GB', quality: 1.0}, result[0]); | |
| }); | |
| it('should correctly parse the language without region', function(){ | |
| var result = parser.parse('en;q=0.8'); | |
| assertResult({ code: 'en', quality: 0.8}, result[0]); | |
| }); | |
| // This needs to be changed to preserve the full code. | |
| it('should ignore extra characters in the region code', function(){ | |
| var result = parser.parse('az-AZ'); | |
| assertResult({ code: 'az', region: 'AZ', quality: 1.0}, result[0]); | |
| }); | |
| it('should correctly parse a multi-language set', function(){ | |
| var result = parser.parse('fr-CA,fr;q=0.8'); | |
| assertResult({ code: 'fr', region: 'CA', quality: 1.0}, result[0]); | |
| assertResult({ code: 'fr', quality: 0.8}, result[1]); | |
| }); | |
| it('should correctly parse a wildcard', function(){ | |
| var result = parser.parse('fr-CA,*;q=0.8'); | |
| assertResult({ code: 'fr', region: 'CA', quality: 1.0}, result[0]); | |
| assertResult({ code: '*', quality: 0.8}, result[1]); | |
| }); | |
| it('should correctly parse a region with numbers', function(){ | |
| var result = parser.parse('fr-150'); | |
| assertResult({ code: 'fr', region: '150', quality: 1.0}, result[0]); | |
| }); | |
| it('should correctly parse complex set', function(){ | |
| var result = parser.parse('fr-CA,fr;q=0.8,en-US;q=0.6,en;q=0.4,*;q=0.1'); | |
| assertResult({ code: 'fr', region: 'CA', quality: 1.0}, result[0]); | |
| assertResult({ code: 'fr', quality: 0.8}, result[1]); | |
| assertResult({ code: 'en', region: 'US', quality: 0.6}, result[2]); | |
| assertResult({ code: 'en', quality: 0.4}, result[3]); | |
| assertResult({ code: '*', quality: 0.1}, result[4]); | |
| }); | |
| it('should cope with random whitespace', function(){ | |
| var result = parser.parse('fr-CA, fr;q=0.8, en-US;q=0.6,en;q=0.4, *;q=0.1'); | |
| assertResult({ code: 'fr', region: 'CA', quality: 1.0}, result[0]); | |
| assertResult({ code: 'fr', quality: 0.8}, result[1]); | |
| assertResult({ code: 'en', region: 'US', quality: 0.6}, result[2]); | |
| assertResult({ code: 'en', quality: 0.4}, result[3]); | |
| assertResult({ code: '*', quality: 0.1}, result[4]); | |
| }); | |
| it('should sort based on quality value', function(){ | |
| var result = parser.parse('fr-CA,fr;q=0.2,en-US;q=0.6,en;q=0.4,*;q=0.5'); | |
| assertResult({ code: 'fr', region: 'CA', quality: 1.0}, result[0]); | |
| assertResult({ code: 'en', region: 'US', quality: 0.6}, result[1]); | |
| assertResult({ code: '*', quality: 0.5}, result[2]); | |
| assertResult({ code: 'en', quality: 0.4}, result[3]); | |
| assertResult({ code: 'fr', quality: 0.2}, result[4]); | |
| }); | |
| it('should correctly identify script', function(){ | |
| var result = parser.parse('zh-Hant-cn'); | |
| assertResult({ code: 'zh', script: 'Hant', region: 'cn', quality: 1.0}, result[0]); | |
| }); | |
| it('should cope with script and a quality value', function(){ | |
| var result = parser.parse('zh-Hant-cn;q=1, zh-cn;q=0.6, zh;q=0.4'); | |
| assertResult({ code: 'zh', script: 'Hant', region: 'cn', quality: 1.0}, result[0]); | |
| assertResult({ code: 'zh', region: 'cn', quality: 0.6}, result[1]); | |
| assertResult({ code: 'zh', quality: 0.4}, result[2]); | |
| }); | |
| }); | |
| describe('accept-language#pick()', function(){ | |
| it('should pick a specific regional language', function(){ | |
| var result = parser.pick(['en-US', 'fr-CA'], 'fr-CA,fr;q=0.2,en-US;q=0.6,en;q=0.4,*;q=0.5'); | |
| assert.equal(result, 'fr-CA'); | |
| }); | |
| it('should pick a specific script (if specified)', function(){ | |
| var result = parser.pick(['zh-Hant-cn', 'zh-cn'], 'zh-Hant-cn,zh-cn;q=0.6,zh;q=0.4'); | |
| assert.equal(result, 'zh-Hant-cn'); | |
| }); | |
| it('should pick proper language regardless of casing', function(){ | |
| var result = parser.pick(['eN-Us', 'Fr-cA'], 'fR-Ca,fr;q=0.2,en-US;q=0.6,en;q=0.4,*;q=0.5'); | |
| assert.equal(result.toLowerCase(), 'fr-ca'); | |
| }); | |
| it('should pick a specific language', function(){ | |
| var result = parser.pick(['en', 'fr-CA'], 'ja-JP,ja;1=0.5,en;q=0.2'); | |
| assert.equal(result, 'en'); | |
| }); | |
| it('should pick a language when culture is not specified', function() { | |
| var result = parser.pick(['en-us', 'it-IT'], 'pl-PL,en'); | |
| assert.equal(result, 'en-us'); | |
| }); | |
| it('should return null if no matches are found', function(){ | |
| var result = parser.pick(['ko-KR'], 'fr-CA,fr;q=0.8,en-US;q=0.6,en;q=0.4,*;q=0.1'); | |
| assert.equal(result, null); | |
| }); | |
| it('should return null if support no languages', function(){ | |
| var result = parser.pick([], 'fr-CA,fr;q=0.8,en-US;q=0.6,en;q=0.4,*;q=0.1'); | |
| assert.equal(result, null); | |
| }); | |
| it('should return null if invalid support', function(){ | |
| var result = parser.pick(undefined, 'fr-CA,fr;q=0.8,en-US;q=0.6,en;q=0.4,*;q=0.1'); | |
| assert.equal(result, null); | |
| }); | |
| it('should return null if invalid accept-language', function(){ | |
| var result = parser.pick(['en']); | |
| assert.equal(result, null); | |
| }); | |
| }); | |