mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 07:58:45 +03:00
Reorganize test files
This commit is contained in:
parent
bcf249da06
commit
f5ee90fcf8
72
package-lock.json
generated
72
package-lock.json
generated
@ -35,8 +35,11 @@
|
||||
"@babel/traverse": "7.23.2",
|
||||
"@jazzer.js/core": "^1.4.0",
|
||||
"@playwright/test": "~1.32.2",
|
||||
"@types/node": "^22.9.1",
|
||||
"@types/node-fetch": "^2.6.12",
|
||||
"jshint": "~2.13.6",
|
||||
"mocha": "~8.2.0",
|
||||
"node-fetch": "^2.7.0",
|
||||
"requirejs": "2.3.2",
|
||||
"safe-regex": "^2.1.1",
|
||||
"tsd": "^0.29.0",
|
||||
@ -781,10 +784,23 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "18.15.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
|
||||
"integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
|
||||
"dev": true
|
||||
"version": "22.9.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.1.tgz",
|
||||
"integrity": "sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"undici-types": "~6.19.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node-fetch": {
|
||||
"version": "2.6.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz",
|
||||
"integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"form-data": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/normalize-package-data": {
|
||||
"version": "2.4.2",
|
||||
@ -3525,6 +3541,26 @@
|
||||
"integrity": "sha512-YsjmaKGPDkmhoNKIpkChtCsPVaRE0a274IdERKnuc/E8K1UJdBZ4/mvI006OijlQZHCfpRNOH3dfHQs92se8gg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/node-fetch": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
|
||||
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"encoding": "^0.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"encoding": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/node-releases": {
|
||||
"version": "2.0.10",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
|
||||
@ -4576,6 +4612,12 @@
|
||||
"node": ">=8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tr46": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/trim-newlines": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
|
||||
@ -4649,6 +4691,12 @@
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"version": "6.19.8",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
|
||||
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/universalify": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
|
||||
@ -4710,6 +4758,22 @@
|
||||
"spdx-expression-parse": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/webidl-conversions": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/whatwg-url": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"tr46": "~0.0.3",
|
||||
"webidl-conversions": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
|
@ -4,11 +4,11 @@ const parseJS = require('@babel/parser').parse;
|
||||
const traverse = require('@babel/traverse').default;
|
||||
const safe = require('safe-regex');
|
||||
const { UAParser } = require('../src/main/ua-parser');
|
||||
const clis = require('./specs/browser-clis.json');
|
||||
const crawlers = require('./specs/browser-crawlers.json');
|
||||
const emails = require('./specs/browser-emails.json');
|
||||
const fetchers = require('./specs/browser-fetchers.json');
|
||||
const libraries = require('./specs/browser-libraries.json');
|
||||
const clis = require('./specs/extension/cli.json');
|
||||
const crawlers = require('./specs/extension/crawler.json');
|
||||
const emails = require('./specs/extension/email.json');
|
||||
const fetchers = require('./specs/extension/fetcher.json');
|
||||
const libraries = require('./specs/extension/library.json');
|
||||
const { Bots, CLIs, Crawlers, Emails, Fetchers, Libraries } = require('../src/extensions/ua-parser-extensions');
|
||||
|
||||
describe('Extensions', () => {
|
||||
|
@ -5,11 +5,11 @@ var requirejs = require('requirejs');
|
||||
var parseJS = require('@babel/parser').parse;
|
||||
var traverse = require('@babel/traverse').default;
|
||||
var {UAParser} = require('../src/main/ua-parser');
|
||||
var browsers = require('./specs/browser-all.json');
|
||||
var cpus = require('./specs/cpu-all.json');
|
||||
var devices = readJsonFiles('test/specs/devices');
|
||||
var engines = require('./specs/engine-all.json');
|
||||
var os = require('./specs/os-all.json');
|
||||
var browsers = require('./specs/browser/browser-all.json');
|
||||
var cpus = require('./specs/cpu/cpu-all.json');
|
||||
var devices = readJsonFiles('test/specs/device');
|
||||
var engines = require('./specs/engine/engine-all.json');
|
||||
var os = require('./specs/os/os-all.json');
|
||||
var { Headers } = require('node-fetch');
|
||||
|
||||
function readJsonFiles(dir) {
|
||||
@ -20,39 +20,6 @@ function readJsonFiles(dir) {
|
||||
return list;
|
||||
};
|
||||
|
||||
var parser = new UAParser();
|
||||
var methods = [
|
||||
{
|
||||
title : 'getBrowser',
|
||||
label : 'browser',
|
||||
list : browsers,
|
||||
properties : ['name', 'major', 'version', 'type']
|
||||
},
|
||||
{
|
||||
title : 'getCPU',
|
||||
label : 'cpu',
|
||||
list : cpus,
|
||||
properties : ['architecture']
|
||||
},
|
||||
{
|
||||
title : 'getDevice',
|
||||
label : 'device',
|
||||
list : devices,
|
||||
properties : ['model', 'type', 'vendor']
|
||||
},
|
||||
{
|
||||
title : 'getEngine',
|
||||
label : 'engine',
|
||||
list : engines,
|
||||
properties : ['name', 'version']
|
||||
},
|
||||
{
|
||||
title : 'getOS',
|
||||
label : 'os',
|
||||
list : os,
|
||||
properties : ['name', 'version']
|
||||
}];
|
||||
|
||||
describe('UAParser()', function () {
|
||||
var ua = 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6';
|
||||
assert.deepEqual(UAParser(ua), new UAParser().setUA(ua).getResult());
|
||||
@ -66,26 +33,50 @@ describe('UAParser.setUA method does not throw with undefined ua argument', func
|
||||
assert.doesNotThrow(() => new UAParser().setUA(undefined).getResult());
|
||||
});
|
||||
|
||||
for (var i in methods) {
|
||||
describe(methods[i]['title'], function () {
|
||||
for (var j in methods[i]['list']) {
|
||||
if (!!methods[i]['list'][j].ua) {
|
||||
describe('[' + methods[i]['list'][j].desc + ']', function () {
|
||||
describe('"' + methods[i]['list'][j].ua + '"', function () {
|
||||
var expect = methods[i]['list'][j].expect;
|
||||
var result = parser.setUA(methods[i]['list'][j].ua).getResult()[methods[i]['label']];
|
||||
|
||||
methods[i]['properties'].forEach(function(m) {
|
||||
it('should return ' + methods[i]['label'] + ' ' + m + ': ' + expect[m], function () {
|
||||
assert.strictEqual(result[m], expect[m] != 'undefined' ? expect[m] : undefined);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
describe('UAParser get*() methods', () => {
|
||||
[
|
||||
{
|
||||
title : 'getBrowser()',
|
||||
label : 'browser',
|
||||
list : browsers
|
||||
},
|
||||
{
|
||||
title : 'getCPU()',
|
||||
label : 'cpu',
|
||||
list : cpus
|
||||
},
|
||||
{
|
||||
title : 'getDevice()',
|
||||
label : 'device',
|
||||
list : devices
|
||||
},
|
||||
{
|
||||
title : 'getEngine()',
|
||||
label : 'engine',
|
||||
list : engines
|
||||
},
|
||||
{
|
||||
title : 'getOS()',
|
||||
label : 'os',
|
||||
list : os
|
||||
}
|
||||
]
|
||||
.forEach(method => {
|
||||
describe(`[${method.title}]`, () => {
|
||||
method.list.forEach(unit => {
|
||||
describe(`[${unit.desc}]: "${unit.ua}"`, () => {
|
||||
const actual = UAParser(unit.ua)[method.label];
|
||||
Object.entries(unit.expect).forEach(entry => {
|
||||
const [key, val] = entry;
|
||||
it(`Should return ${key}: ${val}`, () => {
|
||||
assert.strictEqual(String(val), String(actual[key]));
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('Returns', function () {
|
||||
it('getResult() should returns JSON', function(done) {
|
||||
@ -192,9 +183,9 @@ describe('Testing regexes', function () {
|
||||
|
||||
describe('Begin testing', function () {
|
||||
it('all regexes in main file', function () {
|
||||
describe('Test against `safe-regex` module', function () {
|
||||
regexes.forEach(function (regex) {
|
||||
describe('Test against `safe-regex` : ' + regex, function () {
|
||||
it('should be safe from potentially vulnerable regex', function () {
|
||||
it(`Should pass \`safe-regex\`: ${regex}`, function () {
|
||||
assert.strictEqual(safe(regex), true);
|
||||
});
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user