From 0868e372e0e1d2d8645d51e38a7c34b6647ce3eb Mon Sep 17 00:00:00 2001 From: "o.drapeza" Date: Fri, 2 Apr 2021 12:52:30 +0300 Subject: [PATCH] Add string check to setUA method --- src/ua-parser.js | 2 +- test/test.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index fb1af22..98ae765 100755 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -804,7 +804,7 @@ return _ua; }; this.setUA = function (ua) { - _ua = ua.length > UA_MAX_LENGTH ? util.trim(ua, UA_MAX_LENGTH) : ua; + _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? util.trim(ua, UA_MAX_LENGTH) : ua; return this; }; this.setUA(_ua); diff --git a/test/test.js b/test/test.js index 5b55ade..ad54ef4 100644 --- a/test/test.js +++ b/test/test.js @@ -46,6 +46,14 @@ describe('UAParser()', function () { assert.deepStrictEqual(UAParser(ua), new UAParser().setUA(ua).getResult()); }); +describe('UAParser() constructor does not throw with undefined ua argument', function () { + assert.doesNotThrow(() => new UAParser(undefined).getResult()); +}); + +describe('UAParser.setUA method does not throw with undefined ua argument', function () { + assert.doesNotThrow(() => new UAParser().setUA(undefined).getResult()); +}); + for (var i in methods) { describe(methods[i]['title'], function () { for (var j in methods[i]['list']) {