From 83e8f61109909bffcc3323226243ed07e11c9da4 Mon Sep 17 00:00:00 2001 From: Frank Faubert Date: Thu, 24 Jan 2019 09:04:37 -0500 Subject: [PATCH] Add getEngineName and isEngine API calls --- src/parser.js | 17 +++++++++++++++++ test/unit/parser.js | 15 +++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/parser.js b/src/parser.js index a296977..4893ef0 100644 --- a/src/parser.js +++ b/src/parser.js @@ -272,6 +272,19 @@ class Parser { return this.parseEngine(); } + /** + * Get engines's name + * @return {String} Engines's name or an empty string + * + * @public + */ + getEngineName(toLowerCase) { + if (toLowerCase) { + return String(this.getEngine().name).toLowerCase() || ''; + } + return this.getEngine().name || ''; + } + /** * Get parsed platform * @return {{}} @@ -437,6 +450,10 @@ class Parser { return this.getPlatformType(true) === String(platformType).toLowerCase(); } + isEngine(engineName) { + return this.getEngineName(true) === String(engineName).toLowerCase(); + } + /** * Is anything? Check if the browser is called "anything", * the OS called "anything" or the platform called "anything" diff --git a/test/unit/parser.js b/test/unit/parser.js index 309aa72..17a020f 100644 --- a/test/unit/parser.js +++ b/test/unit/parser.js @@ -53,6 +53,21 @@ test('Parser.getOSVersion returns a correct result', (t) => { t.is(parser.getOSVersion(), '10.12.4'); }); +test('Parser.parseEngine is being called when getEngine() called', (t) => { + const spy = sinon.spy(parser, 'parseEngine'); + parser.getEngine(); + t.truthy(spy.called); + parser.parseEngine.restore(); +}); + +test('Parser.getEngineName gives a name of the engine', (t) => { + t.is(parser.getEngineName(), 'Blink'); +}); + +test('Parser.getEngineName gives a lower-cased name of the engine', (t) => { + t.is(parser.getEngineName(true), 'blink'); +}); + test('Skip parsing shouldn\'t parse', (t) => { t.deepEqual((new Parser(UA, true)).getResult(), {}); });