Skip to content

Commit

Permalink
Reorganize test files
Browse files Browse the repository at this point in the history
  • Loading branch information
faisalman committed Nov 22, 2024
1 parent bcf249d commit f5ee90f
Show file tree
Hide file tree
Showing 66 changed files with 121 additions and 66 deletions.
72 changes: 68 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions test/mocha-test-extension.js
Original file line number Diff line number Diff line change
Expand Up @@ -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', () => {
Expand Down
105 changes: 48 additions & 57 deletions test/mocha-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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());
Expand All @@ -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) {
Expand Down Expand Up @@ -192,9 +183,9 @@ describe('Testing regexes', function () {

describe('Begin testing', function () {
it('all regexes in main file', function () {
regexes.forEach(function (regex) {
describe('Test against `safe-regex` : ' + regex, function () {
it('should be safe from potentially vulnerable regex', function () {
describe('Test against `safe-regex` module', function () {
regexes.forEach(function (regex) {
it(`Should pass \`safe-regex\`: ${regex}`, function () {
assert.strictEqual(safe(regex), true);
});
});
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit f5ee90f

Please sign in to comment.