UNPKG

cvss3

Version:

CVSS (Common Vulnerability Scoring System) Version 3

1,347 lines (1,164 loc) 88.6 kB
var should = require('should'); var CVSS3 = require('../'); describe('cvss3', function () { describe('base', function () { describe('base-av', function () { var testSetAV = [ {"value": 'N', "score": 0.85}, {"value": 'A', "score": 0.62}, {"value": 'L', "score": 0.55}, {"value": 'P', "score": 0.20} ]; var nameAV = 'AV'; it('Test Attack Vector : '+testSetAV[0].value, function () { var value = testSetAV[0].value; var score = testSetAV[0].score; var baseAv = new CVSS3.BaseMetrics.AV(value); baseAv.getName().should.equal(nameAV); baseAv.getVector().should.equal(nameAV+':'+value); baseAv.getScore().should.equal(score); }); it('Test Attack Vector : '+testSetAV[1].value, function () { var value = testSetAV[1].value; var score = testSetAV[1].score; var baseAv = new CVSS3.BaseMetrics.AV(value); baseAv.getName().should.equal(nameAV); baseAv.getVector().should.equal(nameAV+':'+value); baseAv.getScore().should.equal(score); }); it('Test Attack Vector : '+testSetAV[2].value, function () { var value = testSetAV[2].value; var score = testSetAV[2].score; var baseAv = new CVSS3.BaseMetrics.AV(value); baseAv.getName().should.equal(nameAV); baseAv.getVector().should.equal(nameAV+':'+value); baseAv.getScore().should.equal(score); }); it('Test Attack Vector : '+testSetAV[3].value, function () { var value = testSetAV[3].value; var score = testSetAV[3].score; var baseAv = new CVSS3.BaseMetrics.AV(value); baseAv.getName().should.equal(nameAV); baseAv.getVector().should.equal(nameAV+':'+value); baseAv.getScore().should.equal(score); }); it('Test Attack Vector : null', function () { var value = testSetAV[3].value; var score = testSetAV[3].score; var baseAv = new CVSS3.BaseMetrics.AV(null); baseAv.getName().should.equal(nameAV); baseAv.getVector().should.equal(nameAV+':'+value); baseAv.getScore().should.equal(score); }); it('Test Attack Vector : undefined', function () { var value = testSetAV[3].value; var score = testSetAV[3].score; var baseAv = new CVSS3.BaseMetrics.AV(); //no argument baseAv.getName().should.equal(nameAV); baseAv.getVector().should.equal(nameAV+':'+value); baseAv.getScore().should.equal(score); }); }); describe('base-ac', function () { var testSetAC = [ {"value": 'L', "score": 0.77}, {"value": 'H', "score": 0.44}, ]; var nameAC = 'AC'; it('Test Attack Complexity : '+testSetAC[0].value, function () { var value = testSetAC[0].value; var score = testSetAC[0].score; var baseAC = new CVSS3.BaseMetrics.AC(value); baseAC.getName().should.equal(nameAC); baseAC.getVector().should.equal(nameAC+':'+value); baseAC.getScore().should.equal(score); }); it('Test Attack Complexity : '+testSetAC[1].value, function () { var value = testSetAC[1].value; var score = testSetAC[1].score; var baseAC = new CVSS3.BaseMetrics.AC(value); baseAC.getName().should.equal(nameAC); baseAC.getVector().should.equal(nameAC+':'+value); baseAC.getScore().should.equal(score); }); it('Test Attack Complexity : null', function () { var value = testSetAC[1].value; var score = testSetAC[1].score; var baseAC = new CVSS3.BaseMetrics.AC(null); baseAC.getName().should.equal(nameAC); baseAC.getVector().should.equal(nameAC+':'+value); baseAC.getScore().should.equal(score); }); it('Test Attack Complexity : undefined', function () { var value = testSetAC[1].value; var score = testSetAC[1].score; var baseAC = new CVSS3.BaseMetrics.AC(); //no argument baseAC.getName().should.equal(nameAC); baseAC.getVector().should.equal(nameAC+':'+value); baseAC.getScore().should.equal(score); }); }); describe('base-s', function () { var testSetS = [ {"value": 'C', "score": 0.0, "flag": true}, {"value": 'U', "score": 0.0, "flag": false}, ]; var nameS = 'S'; it('Test Scope : '+testSetS[0].value, function () { var value = testSetS[0].value; var score = testSetS[0].score; var flagChange = testSetS[0].flag; var baseS = new CVSS3.BaseMetrics.S(value); baseS.getName().should.equal(nameS); baseS.getVector().should.equal(nameS+':'+value); baseS.getScore().should.equal(score); baseS.isChange().should.equal(flagChange); }); it('Test Scope : '+testSetS[1].value, function () { var value = testSetS[1].value; var score = testSetS[1].score; var flagChange = testSetS[1].flag; var baseS = new CVSS3.BaseMetrics.S(value); baseS.getName().should.equal(nameS); baseS.getVector().should.equal(nameS+':'+value); baseS.getScore().should.equal(score); baseS.isChange().should.equal(flagChange); }); it('Test Scope : null', function () { var value = testSetS[1].value; var score = testSetS[1].score; var flagChange = testSetS[1].flag; var baseS = new CVSS3.BaseMetrics.S(null); baseS.getName().should.equal(nameS); baseS.getVector().should.equal(nameS+':'+value); baseS.getScore().should.equal(score); baseS.isChange().should.equal(flagChange); }); it('Test Scope : undefined', function () { var value = testSetS[1].value; var score = testSetS[1].score; var flagChange = testSetS[1].flag; var baseS = new CVSS3.BaseMetrics.S(); //no argument baseS.getName().should.equal(nameS); baseS.getVector().should.equal(nameS+':'+value); baseS.getScore().should.equal(score); baseS.isChange().should.equal(flagChange); }); }); describe('base-pr', function () { var testSetPR1 = [ {"value": 'N', "score": 0.85}, {"value": 'L', "score": 0.62}, {"value": 'H', "score": 0.27} ]; var namePR = 'PR'; var scopeU = new CVSS3.BaseMetrics.S('U'); it('Test Privileges Required : '+testSetPR1[0].value+' (Scope U)', function () { var value = testSetPR1[0].value; var score = testSetPR1[0].score; var basePR = new CVSS3.BaseMetrics.PR(value); basePR.getName().should.equal(namePR); basePR.getVector().should.equal(namePR+':'+value); basePR.getScore(scopeU.isChange()).should.equal(score); basePR.getScore(null).should.equal(score); basePR.getScore().should.equal(score); }); it('Test Privileges Required : '+testSetPR1[1].value+' (Scope U)', function () { var value = testSetPR1[1].value; var score = testSetPR1[1].score; var basePR = new CVSS3.BaseMetrics.PR(value); basePR.getName().should.equal(namePR); basePR.getVector().should.equal(namePR+':'+value); basePR.getScore(scopeU.isChange()).should.equal(score); }); it('Test Privileges Required : '+testSetPR1[2].value+' (Scope U)', function () { var value = testSetPR1[2].value; var score = testSetPR1[2].score; var basePR = new CVSS3.BaseMetrics.PR(value); basePR.getName().should.equal(namePR); basePR.getVector().should.equal(namePR+':'+value); basePR.getScore(scopeU.isChange()).should.equal(score); }); it('Test Privileges Required : null'+' (Scope U)', function () { var value = testSetPR1[2].value; var score = testSetPR1[2].score; var basePR = new CVSS3.BaseMetrics.PR(null); basePR.getName().should.equal(namePR); basePR.getVector().should.equal(namePR+':'+value); basePR.getScore(scopeU.isChange()).should.equal(score); }); it('Test Privileges Required : undefined'+' (Scope U)', function () { var value = testSetPR1[2].value; var score = testSetPR1[2].score; var basePR = new CVSS3.BaseMetrics.PR(); //no argument basePR.getName().should.equal(namePR); basePR.getVector().should.equal(namePR+':'+value); basePR.getScore(scopeU.isChange()).should.equal(score); }); var testSetPR2 = [ {"value": 'N', "score": 0.85}, {"value": 'L', "score": 0.68}, {"value": 'H', "score": 0.50} ]; var scopeC = new CVSS3.BaseMetrics.S('C'); it('Test Privileges Required : '+testSetPR2[0].value+' (Scope C)', function () { var value = testSetPR2[0].value; var score = testSetPR2[0].score; var basePR = new CVSS3.BaseMetrics.PR(value); basePR.getName().should.equal(namePR); basePR.getVector().should.equal(namePR+':'+value); basePR.getScore(scopeC.isChange()).should.equal(score); }); it('Test Privileges Required : '+testSetPR2[1].value+' (Scope C)', function () { var value = testSetPR2[1].value; var score = testSetPR2[1].score; var basePR = new CVSS3.BaseMetrics.PR(value); basePR.getName().should.equal(namePR); basePR.getVector().should.equal(namePR+':'+value); basePR.getScore(scopeC.isChange()).should.equal(score); }); it('Test Privileges Required : '+testSetPR2[2].value+' (Scope C)', function () { var value = testSetPR2[2].value; var score = testSetPR2[2].score; var basePR = new CVSS3.BaseMetrics.PR(value); basePR.getName().should.equal(namePR); basePR.getVector().should.equal(namePR+':'+value); basePR.getScore(scopeC.isChange()).should.equal(score); }); it('Test Privileges Required : null'+' (Scope C)', function () { var value = testSetPR2[2].value; var score = testSetPR2[2].score; var basePR = new CVSS3.BaseMetrics.PR(null); basePR.getName().should.equal(namePR); basePR.getVector().should.equal(namePR+':'+value); basePR.getScore(scopeC.isChange()).should.equal(score); }); it('Test Privileges Required : undefined'+' (Scope C)', function () { var value = testSetPR2[2].value; var score = testSetPR2[2].score; var basePR = new CVSS3.BaseMetrics.PR(); //no argument basePR.getName().should.equal(namePR); basePR.getVector().should.equal(namePR+':'+value); basePR.getScore(scopeC.isChange()).should.equal(score); }); }); describe('base-ui', function () { var testSetUI = [ {"value": 'N', "score": 0.85}, {"value": 'R', "score": 0.62} ]; var nameUI = 'UI'; it('Test User Interaction : '+testSetUI[0].value, function () { var value = testSetUI[0].value; var score = testSetUI[0].score; var baseUI = new CVSS3.BaseMetrics.UI(value); baseUI.getName().should.equal(nameUI); baseUI.getVector().should.equal(nameUI+':'+value); baseUI.getScore().should.equal(score); }); it('Test User Interaction : '+testSetUI[1].value, function () { var value = testSetUI[1].value; var score = testSetUI[1].score; var baseUI = new CVSS3.BaseMetrics.UI(value); baseUI.getName().should.equal(nameUI); baseUI.getVector().should.equal(nameUI+':'+value); baseUI.getScore().should.equal(score); }); it('Test User Interaction : null', function () { var value = testSetUI[1].value; var score = testSetUI[1].score; var baseUI = new CVSS3.BaseMetrics.UI(null); baseUI.getName().should.equal(nameUI); baseUI.getVector().should.equal(nameUI+':'+value); baseUI.getScore().should.equal(score); }); it('Test User Interaction : undefined', function () { var value = testSetUI[1].value; var score = testSetUI[1].score; var baseUI = new CVSS3.BaseMetrics.UI(); //no argument baseUI.getName().should.equal(nameUI); baseUI.getVector().should.equal(nameUI+':'+value); baseUI.getScore().should.equal(score); }); }); describe('base-c', function () { var testSetC = [ {"value": 'H', "score": 0.56}, {"value": 'L', "score": 0.22}, {"value": 'N', "score": 0.00} ]; var nameC = 'C'; it('Test Confidentiality Impact : '+testSetC[0].value, function () { var value = testSetC[0].value; var score = testSetC[0].score; var baseC = new CVSS3.BaseMetrics.C(value); baseC.getName().should.equal(nameC); baseC.getVector().should.equal(nameC+':'+value); baseC.getScore().should.equal(score); }); it('Test Confidentiality Impact : '+testSetC[1].value, function () { var value = testSetC[1].value; var score = testSetC[1].score; var baseC = new CVSS3.BaseMetrics.C(value); baseC.getName().should.equal(nameC); baseC.getVector().should.equal(nameC+':'+value); baseC.getScore().should.equal(score); }); it('Test Confidentiality Impact : '+testSetC[2].value, function () { var value = testSetC[2].value; var score = testSetC[2].score; var baseC = new CVSS3.BaseMetrics.C(value); baseC.getName().should.equal(nameC); baseC.getVector().should.equal(nameC+':'+value); baseC.getScore().should.equal(score); }); it('Test Confidentiality Impact : null', function () { var value = testSetC[2].value; var score = testSetC[2].score; var baseC = new CVSS3.BaseMetrics.C(null); baseC.getName().should.equal(nameC); baseC.getVector().should.equal(nameC+':'+value); baseC.getScore().should.equal(score); }); it('Test Confidentiality Impact : undefined', function () { var value = testSetC[2].value; var score = testSetC[2].score; var baseC = new CVSS3.BaseMetrics.C(); //no argument baseC.getName().should.equal(nameC); baseC.getVector().should.equal(nameC+':'+value); baseC.getScore().should.equal(score); }); }); describe('base-i', function () { var testSetI = [ {"value": 'H', "score": 0.56}, {"value": 'L', "score": 0.22}, {"value": 'N', "score": 0.00} ]; var nameI = 'I'; it('Test Integrity Impact : '+testSetI[0].value, function () { var value = testSetI[0].value; var score = testSetI[0].score; var baseI = new CVSS3.BaseMetrics.I(value); baseI.getName().should.equal(nameI); baseI.getVector().should.equal(nameI+':'+value); baseI.getScore().should.equal(score); }); it('Test Integrity Impact : '+testSetI[1].value, function () { var value = testSetI[1].value; var score = testSetI[1].score; var baseI = new CVSS3.BaseMetrics.I(value); baseI.getName().should.equal(nameI); baseI.getVector().should.equal(nameI+':'+value); baseI.getScore().should.equal(score); }); it('Test Integrity Impact : '+testSetI[2].value, function () { var value = testSetI[2].value; var score = testSetI[2].score; var baseI = new CVSS3.BaseMetrics.I(value); baseI.getName().should.equal(nameI); baseI.getVector().should.equal(nameI+':'+value); baseI.getScore().should.equal(score); }); it('Test Integrity Impact : null', function () { var value = testSetI[2].value; var score = testSetI[2].score; var baseI = new CVSS3.BaseMetrics.I(null); baseI.getName().should.equal(nameI); baseI.getVector().should.equal(nameI+':'+value); baseI.getScore().should.equal(score); }); it('Test Integrity Impact : undefined', function () { var value = testSetI[2].value; var score = testSetI[2].score; var baseI = new CVSS3.BaseMetrics.I(); //no argument baseI.getName().should.equal(nameI); baseI.getVector().should.equal(nameI+':'+value); baseI.getScore().should.equal(score); }); }); describe('base-a', function () { var testSetA = [ {"value": 'H', "score": 0.56}, {"value": 'L', "score": 0.22}, {"value": 'N', "score": 0.00} ]; var nameA = 'A'; it('Test Integrity Impact : '+testSetA[0].value, function () { var value = testSetA[0].value; var score = testSetA[0].score; var baseA = new CVSS3.BaseMetrics.A(value); baseA.getName().should.equal(nameA); baseA.getVector().should.equal(nameA+':'+value); baseA.getScore().should.equal(score); }); it('Test Integrity Impact : '+testSetA[1].value, function () { var value = testSetA[1].value; var score = testSetA[1].score; var baseA = new CVSS3.BaseMetrics.A(value); baseA.getName().should.equal(nameA); baseA.getVector().should.equal(nameA+':'+value); baseA.getScore().should.equal(score); }); it('Test Integrity Impact : '+testSetA[2].value, function () { var value = testSetA[2].value; var score = testSetA[2].score; var baseA = new CVSS3.BaseMetrics.A(value); baseA.getName().should.equal(nameA); baseA.getVector().should.equal(nameA+':'+value); baseA.getScore().should.equal(score); }); it('Test Integrity Impact : null', function () { var value = testSetA[2].value; var score = testSetA[2].score; var baseA = new CVSS3.BaseMetrics.A(null); baseA.getName().should.equal(nameA); baseA.getVector().should.equal(nameA+':'+value); baseA.getScore().should.equal(score); }); it('Test Integrity Impact : undefined', function () { var value = testSetA[2].value; var score = testSetA[2].score; var baseA = new CVSS3.BaseMetrics.A(); //no argument baseA.getName().should.equal(nameA); baseA.getVector().should.equal(nameA+':'+value); baseA.getScore().should.equal(score); }); }); it('Test Base Metrics : Input "Attack Vector" metric', function () { var base = new CVSS3.BaseMetrics(new CVSS3.BaseMetrics.AV('N')); base.av.getVector().should.equal('AV:N'); base.av.getScore().should.equal(0.85); }); it('Test Base Metrics : Input "Attack Complexity" metric', function () { var base = new CVSS3.BaseMetrics(new CVSS3.BaseMetrics.AC('L')); base.ac.getVector().should.equal('AC:L'); base.ac.getScore().should.equal(0.77); }); it('Test Base Metrics : Input "Scope" metric', function () { var base = new CVSS3.BaseMetrics(new CVSS3.BaseMetrics.S('C')); base.s.getVector().should.equal('S:C'); base.s.getScore().should.equal(0.00); }); it('Test Base Metrics : Input "Privileges Required" metric', function () { var base = new CVSS3.BaseMetrics(new CVSS3.BaseMetrics.PR('N')); base.pr.getVector().should.equal('PR:N'); base.pr.getScore(new CVSS3.BaseMetrics.S()).should.equal(0.85); }); it('Test Base Metrics : Input "User Interaction" metric', function () { var base = new CVSS3.BaseMetrics(new CVSS3.BaseMetrics.UI('N')); base.ui.getVector().should.equal('UI:N'); base.ui.getScore().should.equal(0.85); }); it('Test Base Metrics : Input "Confidentiality Impact" metric', function () { var base = new CVSS3.BaseMetrics(new CVSS3.BaseMetrics.C('H')); base.c.getVector().should.equal('C:H'); base.c.getScore().should.equal(0.56); }); it('Test Base Metrics : Input "Integrity Impact" metric', function () { var base = new CVSS3.BaseMetrics(new CVSS3.BaseMetrics.I('H')); base.i.getVector().should.equal('I:H'); base.i.getScore().should.equal(0.56); }); it('Test Base Metrics : Input "Integrity Impact" metric', function () { var base = new CVSS3.BaseMetrics(new CVSS3.BaseMetrics.I('L')); base.i.getVector().should.equal('I:L'); base.i.getScore().should.equal(0.22); }); it('Test Base Metrics : Input "Availability Impact" metric', function () { var base = new CVSS3.BaseMetrics(new CVSS3.BaseMetrics.A('H')); base.a.getVector().should.equal('A:H'); base.a.getScore().should.equal(0.56); }); it('Test Base Metrics : Input all metric', function () { var vector_cve_2013_1937 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"; var base = new CVSS3.BaseMetrics(new CVSS3.BaseMetrics.AV('N') ,new CVSS3.BaseMetrics.AC('L') ,new CVSS3.BaseMetrics.PR('N') ,new CVSS3.BaseMetrics.UI('R') ,new CVSS3.BaseMetrics.S('C') ,new CVSS3.BaseMetrics.C('L') ,new CVSS3.BaseMetrics.I('L') ,new CVSS3.BaseMetrics.A('N')); base.getName().should.equal("BaseMetrics"); base.getVector().should.equal(vector_cve_2013_1937); base.getScore().should.equal(6.1); }); it('Test Base Metrics : Undefined', function () { var base = new CVSS3.BaseMetrics(); var vector_zero = "CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:N"; base.getVector().should.equal(vector_zero); base.getScore().should.equal(0.0); }); it('Test Base Metrics : CVE-2013-1937', function () { var vector_cve_2013_1937 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"; var base = new CVSS3.BaseMetrics(vector_cve_2013_1937); base.getVector().should.equal(vector_cve_2013_1937); base.getScore().should.equal(6.1); }); it('Test Base Metrics : CVE-2013-1937 not CVSSv3', function () { var vector_cve_2013_1937e = "AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"; var base = new CVSS3.BaseMetrics(vector_cve_2013_1937e); base.getScore().should.equal(0.0); }); it('Test Base Metrics : CVE-2013-0375', function () { var vector_cve_2013_0375 = "CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2013_0375); base.getVector().should.equal(vector_cve_2013_0375); base.getScore().should.equal(6.4); }); it('Test Base Metrics : CVE-2014-3566', function () { var vector_cve_2014_3566 = "CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2014_3566); base.getVector().should.equal(vector_cve_2014_3566); base.getScore().should.equal(3.1); }); it('Test Base Metrics : CVE-2012-1516', function () { var vector_cve_2012_1516 = "CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2012_1516); base.getVector().should.equal(vector_cve_2012_1516); base.getScore().should.equal(9.9); }); it('Test Base Metrics : CVE-2009-0783', function () { var vector_cve_2009_0783 = "CVSS:3.0/AV:L/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:L"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2009_0783); base.getVector().should.equal(vector_cve_2009_0783); base.getScore().should.equal(4.2); }); it('Test Base Metrics : CVE-2012-0384', function () { var vector_cve_2012_0384 = "CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2012_0384); base.getVector().should.equal(vector_cve_2012_0384); base.getScore().should.equal(8.8); }); it('Test Base Metrics : CVE-2015-1098', function () { var vector_cve_2015_1098 = "CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2015_1098); base.getVector().should.equal(vector_cve_2015_1098); base.getScore().should.equal(7.8); }); it('Test Base Metrics : CVE-2014-0160', function () { var vector_cve_2014_0160 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2014_0160); base.getVector().should.equal(vector_cve_2014_0160); base.getScore().should.equal(7.5); }); it('Test Base Metrics : CVE-2014-6271', function () { var vector_cve_2014_6271 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2014_6271); base.getVector().should.equal(vector_cve_2014_6271); base.getScore().should.equal(9.8); }); it('Test Base Metrics : CVE-2008-1447', function () { var vector_cve_2008_1447 = "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2008_1447); base.getVector().should.equal(vector_cve_2008_1447); base.getScore().should.equal(6.8); }); it('Test Base Metrics : CVE-2014-2005', function () { var vector_cve_2014_2005 = "CVSS:3.0/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2014_2005); base.getVector().should.equal(vector_cve_2014_2005); base.getScore().should.equal(6.8); }); it('Test Base Metrics : CVE-2010-0467', function () { var vector_cve_2010_0467 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2010_0467); base.getVector().should.equal(vector_cve_2010_0467); base.getScore().should.equal(5.8); }); it('Test Base Metrics : CVE-2012-1342', function () { var vector_cve_2012_1342 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2012_1342); base.getVector().should.equal(vector_cve_2012_1342); base.getScore().should.equal(5.8); }); it('Test Base Metrics : CVE-2013-6014', function () { var vector_cve_2013_6014 = "CVSS:3.0/AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:H"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2013_6014); base.getVector().should.equal(vector_cve_2013_6014); base.getScore().should.equal(9.3); }); it('Test Base Metrics : CVE-2014-9253', function () { var vector_cve_2014_9253 = "CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2014_9253); base.getVector().should.equal(vector_cve_2014_9253); base.getScore().should.equal(5.4); }); it('Test Base Metrics : CVE-2009-0658', function () { var vector_cve_2009_0658 = "CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2009_0658); base.getVector().should.equal(vector_cve_2009_0658); base.getScore().should.equal(7.8); }); it('Test Base Metrics : CVE-2011-1265', function () { var vector_cve_2011_1265 = "CVSS:3.0/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2011_1265); base.getVector().should.equal(vector_cve_2011_1265); base.getScore().should.equal(8.8); }); it('Test Base Metrics : CVE-2014-2019', function () { var vector_cve_2014_2019 = "CVSS:3.0/AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2014_2019); base.getVector().should.equal(vector_cve_2014_2019); base.getScore().should.equal(4.6); }); it('Test Base Metrics : CVE-2015-0970', function () { var vector_cve_2015_0970 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2015_0970); base.getVector().should.equal(vector_cve_2015_0970); base.getScore().should.equal(8.8); }); it('Test Base Metrics : CVE-2014-0224', function () { var vector_cve_2014_0224 = "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2014_0224); base.getVector().should.equal(vector_cve_2014_0224); base.getScore().should.equal(7.4); }); it('Test Base Metrics : CVE-2012-5376', function () { var vector_cve_2012_5376 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2012_5376); base.getVector().should.equal(vector_cve_2012_5376); base.getScore().should.equal(9.6); }); }); describe('temporal', function () { describe('tempo-e', function () { var testSetE = [ {"value": 'X', "score": 1.00}, {"value": 'H', "score": 1.00}, {"value": 'F', "score": 0.97}, {"value": 'P', "score": 0.94}, {"value": 'U', "score": 0.91} ]; var nameE = 'E'; it('Test Exploit Code Maturity : '+testSetE[0].value, function () { var value = testSetE[0].value; var score = testSetE[0].score; var tempoE = new CVSS3.TemporalMetrics.E(value); tempoE.getName().should.equal(nameE); tempoE.getVector().should.equal(nameE+':'+value); tempoE.getScore().should.equal(score); }); it('Test Exploit Code Maturity : null', function () { var value = testSetE[0].value; var score = testSetE[0].score; var tempoE = new CVSS3.TemporalMetrics.E(null); tempoE.getName().should.equal(nameE); tempoE.getVector().should.equal(nameE+':'+value); tempoE.getScore().should.equal(score); }); it('Test Exploit Code Maturity : undefined', function () { var value = testSetE[0].value; var score = testSetE[0].score; var tempoE = new CVSS3.TemporalMetrics.E(); tempoE.getName().should.equal(nameE); tempoE.getVector().should.equal(nameE+':'+value); tempoE.getScore().should.equal(score); }); it('Test Exploit Code Maturity : '+testSetE[1].value, function () { var value = testSetE[1].value; var score = testSetE[1].score; var tempoE = new CVSS3.TemporalMetrics.E(value); tempoE.getName().should.equal(nameE); tempoE.getVector().should.equal(nameE+':'+value); tempoE.getScore().should.equal(score); }); it('Test Exploit Code Maturity : '+testSetE[2].value, function () { var value = testSetE[2].value; var score = testSetE[2].score; var tempoE = new CVSS3.TemporalMetrics.E(value); tempoE.getName().should.equal(nameE); tempoE.getVector().should.equal(nameE+':'+value); tempoE.getScore().should.equal(score); }); it('Test Exploit Code Maturity : '+testSetE[3].value, function () { var value = testSetE[3].value; var score = testSetE[3].score; var tempoE = new CVSS3.TemporalMetrics.E(value); tempoE.getName().should.equal(nameE); tempoE.getVector().should.equal(nameE+':'+value); tempoE.getScore().should.equal(score); }); it('Test Exploit Code Maturity : '+testSetE[4].value, function () { var value = testSetE[4].value; var score = testSetE[4].score; var tempoE = new CVSS3.TemporalMetrics.E(value); tempoE.getName().should.equal(nameE); tempoE.getVector().should.equal(nameE+':'+value); tempoE.getScore().should.equal(score); }); }); describe('tempo-rl', function () { var testSetRL = [ {"value": 'X', "score": 1.00}, {"value": 'U', "score": 1.00}, {"value": 'W', "score": 0.97}, {"value": 'T', "score": 0.96}, {"value": 'O', "score": 0.95} ]; var nameRL = 'RL'; it('Test Remediation Level : '+testSetRL[0].value, function () { var value = testSetRL[0].value; var score = testSetRL[0].score; var tempoRL = new CVSS3.TemporalMetrics.RL(value); tempoRL.getName().should.equal(nameRL); tempoRL.getVector().should.equal(nameRL+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Remediation Level : null', function () { var value = testSetRL[0].value; var score = testSetRL[0].score; var tempoRL = new CVSS3.TemporalMetrics.RL(null); tempoRL.getName().should.equal(nameRL); tempoRL.getVector().should.equal(nameRL+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Remediation Level : undefined', function () { var value = testSetRL[0].value; var score = testSetRL[0].score; var tempoRL = new CVSS3.TemporalMetrics.RL(); tempoRL.getName().should.equal(nameRL); tempoRL.getVector().should.equal(nameRL+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Remediation Level : '+testSetRL[1].value, function () { var value = testSetRL[1].value; var score = testSetRL[1].score; var tempoRL = new CVSS3.TemporalMetrics.RL(value); tempoRL.getName().should.equal(nameRL); tempoRL.getVector().should.equal(nameRL+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Remediation Level : '+testSetRL[2].value, function () { var value = testSetRL[2].value; var score = testSetRL[2].score; var tempoRL = new CVSS3.TemporalMetrics.RL(value); tempoRL.getName().should.equal(nameRL); tempoRL.getVector().should.equal(nameRL+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Remediation Level : '+testSetRL[3].value, function () { var value = testSetRL[3].value; var score = testSetRL[3].score; var tempoRL = new CVSS3.TemporalMetrics.RL(value); tempoRL.getName().should.equal(nameRL); tempoRL.getVector().should.equal(nameRL+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Remediation Level : '+testSetRL[4].value, function () { var value = testSetRL[4].value; var score = testSetRL[4].score; var tempoRL = new CVSS3.TemporalMetrics.RL(value); tempoRL.getName().should.equal(nameRL); tempoRL.getVector().should.equal(nameRL+':'+value); tempoRL.getScore().should.equal(score); }); }); describe('tempo-rc', function () { var testSetRC = [ {"value": 'X', "score": 1.00}, {"value": 'C', "score": 1.00}, {"value": 'R', "score": 0.96}, {"value": 'U', "score": 0.92}, ]; var nameRC = 'RC'; it('Test Report Confidence : '+testSetRC[0].value, function () { var value = testSetRC[0].value; var score = testSetRC[0].score; var tempoRL = new CVSS3.TemporalMetrics.RC(value); tempoRL.getName().should.equal(nameRC); tempoRL.getVector().should.equal(nameRC+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Report Confidence : null', function () { var value = testSetRC[0].value; var score = testSetRC[0].score; var tempoRL = new CVSS3.TemporalMetrics.RC(null); tempoRL.getName().should.equal(nameRC); tempoRL.getVector().should.equal(nameRC+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Report Confidence : undefined', function () { var value = testSetRC[0].value; var score = testSetRC[0].score; var tempoRL = new CVSS3.TemporalMetrics.RC(); tempoRL.getName().should.equal(nameRC); tempoRL.getVector().should.equal(nameRC+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Report Confidence : '+testSetRC[1].value, function () { var value = testSetRC[1].value; var score = testSetRC[1].score; var tempoRL = new CVSS3.TemporalMetrics.RC(value); tempoRL.getName().should.equal(nameRC); tempoRL.getVector().should.equal(nameRC+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Report Confidence : '+testSetRC[2].value, function () { var value = testSetRC[2].value; var score = testSetRC[2].score; var tempoRL = new CVSS3.TemporalMetrics.RC(value); tempoRL.getName().should.equal(nameRC); tempoRL.getVector().should.equal(nameRC+':'+value); tempoRL.getScore().should.equal(score); }); it('Test Report Confidence : '+testSetRC[3].value, function () { var value = testSetRC[3].value; var score = testSetRC[3].score; var tempoRL = new CVSS3.TemporalMetrics.RC(value); tempoRL.getName().should.equal(nameRC); tempoRL.getVector().should.equal(nameRC+':'+value); tempoRL.getScore().should.equal(score); }); }); it('Test Temporal Metrics : Input "Exploit Code Maturity" metric', function () { var tempo = new CVSS3.TemporalMetrics(new CVSS3.TemporalMetrics.E('U')); tempo.e.getVector().should.equal('E:U'); tempo.e.getScore().should.equal(0.91); }); it('Test Temporal Metrics : Input "Remediation Level" metric', function () { var tempo = new CVSS3.TemporalMetrics(new CVSS3.TemporalMetrics.RL('O')); tempo.rl.getVector().should.equal('RL:O'); tempo.rl.getScore().should.equal(0.95); }); it('Test Temporal Metrics : Input "Report Confidence" metric', function () { var tempo = new CVSS3.TemporalMetrics(new CVSS3.TemporalMetrics.RC('U')); tempo.rc.getVector().should.equal('RC:U'); tempo.rc.getScore().should.equal(0.92); }); it('Test Temporal Metrics : Input all metric', function () { var vector_cve_2013_1937 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"; var base = (new CVSS3.BaseMetrics()).importVector(vector_cve_2013_1937); var tempo = new CVSS3.TemporalMetrics(new CVSS3.TemporalMetrics.E('U') ,new CVSS3.TemporalMetrics.RL('O') ,new CVSS3.TemporalMetrics.RC('U')); var vector_Lo_score = vector_cve_2013_1937 + "/E:U/RL:O/RC:U"; tempo.getName().should.equal("TemporalMetrics"); tempo.getVector(base).should.equal(vector_Lo_score); tempo.getScore(base).should.equal(4.9); }); it('Test Temporal Metrics : Undefined', function () { var vector_base10 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"; var vector_not_defined = vector_base10 + "/E:X/RL:X/RC:X"; var base = new CVSS3.BaseMetrics(vector_not_defined); base.getVector().should.equal(vector_base10); base.getScore().should.equal(10.0); var tempo = new CVSS3.TemporalMetrics(); tempo.getVector(base).should.equal(vector_not_defined); tempo.getScore(base).should.equal(10.0); }); it('Test Temporal Metrics : Not Defined', function () { var vector_base10_1 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"; var vector_not_defined = vector_base10_1 + "/E:X/RL:X/RC:X"; var base = new CVSS3.BaseMetrics(vector_not_defined); base.getVector().should.equal(vector_base10_1); base.getScore().should.equal(10.0); var tempo = new CVSS3.TemporalMetrics(vector_not_defined); tempo.getVector(base).should.equal(vector_not_defined); tempo.getScore(base).should.equal(10.0); }); it('Test Temporal Metrics : Hi Score', function () { var vector_base10_2 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"; var vector_hi_score = vector_base10_2 + "/E:H/RL:U/RC:C"; var base = new CVSS3.BaseMetrics(vector_hi_score); base.getVector().should.equal(vector_base10_2); base.getScore().should.equal(10.0); var tempo = new CVSS3.TemporalMetrics(vector_hi_score); tempo.getVector(base).should.equal(vector_hi_score); tempo.getScore(base).should.equal(10.0); }); it('Test Temporal Metrics : Lo Score', function () { var vector_base10_3 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"; var vector_Lo_score = vector_base10_3 + "/E:U/RL:O/RC:U"; var base = new CVSS3.BaseMetrics(vector_Lo_score); base.getVector().should.equal(vector_base10_3); base.getScore().should.equal(10.0); var tempo = new CVSS3.TemporalMetrics(vector_Lo_score); tempo.getVector(base).should.equal(vector_Lo_score); tempo.getScore(base).should.equal(8.0); }); it('Test Temporal Metrics : Zero', function () { var vector_base0 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N"; var vector_0_score = vector_base0 + "/E:H/RL:U/RC:C"; var base = new CVSS3.BaseMetrics(vector_0_score); base.getVector().should.equal(vector_base0); base.getScore().should.equal(0.0); var tempo = new CVSS3.TemporalMetrics(vector_0_score); tempo.getVector(base).should.equal(vector_0_score); tempo.getScore(base).should.equal(0.0); }); it('Test Temporal Metrics : CVE-2013-1937', function () { var vector_cve_2013_1937 = "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"; var base = new CVSS3.BaseMetrics(vector_cve_2013_1937); var vector_hi_score = vector_cve_2013_1937 + "/E:H/RL:U/RC:C"; var tempoHi = new CVSS3.TemporalMetrics(vector_hi_score); tempoHi.getVector(base).should.equal(vector_hi_score); tempoHi.getScore(base).should.equal(6.1); var vector_Lo_score = vector_cve_2013_1937 + "/E:U/RL:O/RC:U"; var tempoLo = new CVSS3.TemporalMetrics(vector_Lo_score); tempoLo.getVector(base).should.equal(vector_Lo_score); tempoLo.getScore(base).should.equal(4.9); }); }); describe('environmental', function () { describe('env-cr', function () { var testSetCR = [ {"value": 'X', "score": 1.00}, {"value": 'H', "score": 1.50}, {"value": 'M', "score": 1.00}, {"value": 'L', "score": 0.50} ]; var nameCR = 'CR'; it('Test Confidentiality Requirement : '+testSetCR[0].value, function () { var value = testSetCR[0].value; var score = testSetCR[0].score; var tempoCR = new CVSS3.EnvironmentalMetrics.CR(value); tempoCR.getName().should.equal(nameCR); tempoCR.getVector().should.equal(nameCR+':'+value); tempoCR.getScore().should.equal(score); }); it('Test Confidentiality Requirement : null', function () { var value = testSetCR[0].value; var score = testSetCR[0].score; var tempoCR = new CVSS3.EnvironmentalMetrics.CR(null); tempoCR.getName().should.equal(nameCR); tempoCR.getVector().should.equal(nameCR+':'+value); tempoCR.getScore().should.equal(score); }); it('Test Confidentiality Requirement : undefined', function () { var value = testSetCR[0].value; var score = testSetCR[0].score; var tempoCR = new CVSS3.EnvironmentalMetrics.CR(); tempoCR.getName().should.equal(nameCR); tempoCR.getVector().should.equal(nameCR+':'+value); tempoCR.getScore().should.equal(score); }); it('Test Confidentiality Requirement : '+testSetCR[1].value, function () { var value = testSetCR[1].value; var score = testSetCR[1].score; var tempoCR = new CVSS3.EnvironmentalMetrics.CR(value); tempoCR.getName().should.equal(nameCR); tempoCR.getVector().should.equal(nameCR+':'+value); tempoCR.getScore().should.equal(score); }); it('Test Confidentiality Requirement : '+testSetCR[2].value, function () { var value = testSetCR[2].value; var score = testSetCR[2].score; var tempoCR = new CVSS3.EnvironmentalMetrics.CR(value); tempoCR.getName().should.equal(nameCR); tempoCR.getVector().should.equal(nameCR+':'+value); tempoCR.getScore().should.equal(score); }); it('Test Confidentiality Requirement : '+testSetCR[3].value, function () { var value = testSetCR[3].value; var score = testSetCR[3].score; var tempoCR = new CVSS3.EnvironmentalMetrics.CR(value); tempoCR.getName().should.equal(nameCR); tempoCR.getVector().should.equal(nameCR+':'+value); tempoCR.getScore().should.equal(score); }); }); describe('env-ir', function () { var testSetIR = [ {"value": 'X', "score": 1.00}, {"value": 'H', "score": 1.50}, {"value": 'M', "score": 1.00}, {"value": 'L', "score": 0.50} ]; var nameIR = 'IR'; it('Test Integrity Requirement : '+testSetIR[0].value, function () { var value = testSetIR[0].value; var score = testSetIR[0].score; var tempoIR = new CVSS3.EnvironmentalMetrics.IR(value); tempoIR.getName().should.equal(nameIR); tempoIR.getVector().should.equal(nameIR+':'+value); tempoIR.getScore().should.equal(score); }); it('Test Integrity Requirement : null', function () { var value = testSetIR[0].value; var score = testSetIR[0].score; var tempoIR = new CVSS3.EnvironmentalMetrics.IR(null); tempoIR.getName().should.equal(nameIR); tempoIR.getVector().should.equal(nameIR+':'+value); tempoIR.getScore().should.equal(score); }); it('Test Integrity Requirement : undefined', function () { var value = testSetIR[0].value; var score = testSetIR[0].score; var tempoIR = new CVSS3.EnvironmentalMetrics.IR(); tempoIR.getName().should.equal(nameIR); tempoIR.getVector().should.equal(nameIR+':'+value); tempoIR.getScore().should.equal(score); }); it('Test Integrity Requirement : '+testSetIR[1].value, function () { var value = testSetIR[1].value; var score = testSetIR[1].score; var tempoIR = new CVSS3.EnvironmentalMetrics.IR(value); tempoIR.getName().should.equal(nameIR); tempoIR.getVector().should.equal(nameIR+':'+value); tempoIR.getScore().should.equal(score); }); it('Test Integrity Requirement : '+testSetIR[2].value, function () { var value = testSetIR[2].value; var score = testSetIR[2].score; var tempoIR = new CVSS3.EnvironmentalMetrics.IR(value); tempoIR.getName().should.equal(nameIR); tempoIR.getVector().should.equal(nameIR+':'+value); tempoIR.getScore().should.equal(score); }); it('Test Integrity Requirement : '+testSetIR[3].value, function () { var value = testSetIR[3].value; var score = testSetIR[3].score; var tempoIR = new CVSS3.EnvironmentalMetrics.IR(value); tempoIR.getName().should.equal(nameIR); tempoIR.getVector().should.equal(nameIR+':'+value); tempoIR.getScore().should.equal(score); }); }); describe('env-ar', function () { var testSetAR = [ {"value": 'X', "score": 1.00}, {"value": 'H', "score": 1.50}, {"value": 'M', "score": 1.00}, {"value": 'L', "score": 0.50} ]; var nameAR = 'AR'; it('Test Availability Requirement : '+testSetAR[0].value, function () { var value = testSetAR[0].value; var score = testSetAR[0].score; var tempoIR = new CVSS3.EnvironmentalMetrics.AR(value); tempoIR.getName().should.equal(nameAR); tempoIR.getVector().should.equal(nameAR+':'+value); tempoIR.getScore().should.equal(score); }); it('Test Availability Requirement : null', function () { var value = testSetAR[0].value; var score = testSetAR[0].score; var tempoIR = new CVSS3.EnvironmentalMetrics.AR(null); tempoIR.getName().should.equal(nameAR); tempoIR.getVector().should.equal(nameAR+':'+value); tempoIR.getScore().should.equal(score); }); it('Test Availability Requirement : undefined', function () { var value = testSetAR[0].value; var score = testSetAR[0].score; var tempoIR = new CVSS3.EnvironmentalMetrics.AR(); tempoIR.getName().should.equal(nameAR); tempoIR.getVector().should.equal(nameAR+':'+value); tempoIR.getScore().should.equal(score); }); it('Test Availability Requirement : '+testSetAR[1].value, function () { var value = testSetAR[1].value; var score = testSetAR[1].score; var tempoIR = new CVSS3.EnvironmentalMetrics.AR(value); tempoIR.getName().should.equal(nameAR); tempoIR.getVector().should.equal(nameAR+':'+value); tempoIR.getScore().should.equal(score); }); it('Test Availability Requirement : '+testSetAR[2].value, function () { var value = testSetAR[2].value; var score = testSetAR[2].score; var tempoIR = new CVSS3.EnvironmentalMetrics.AR(value); tempoIR.getName().should.equal(nameAR); tempoIR.getVector().should.equal(nameAR+':'+value); tempoIR.getScore().should.equal(score); }); it('Test Availability Requirement : '+testSetAR[3].value, function () { var value = testSetAR[3].value; var score = testSetAR[3].score; var tempoIR = new CVSS3.EnvironmentalMetrics.AR(value); tempoIR.getName().should.equal(nameAR); tempoIR.getVector().should.equal(nameAR+':'+value); tempoIR.getScore().should.equal(score); }); }); describe('env-mav', function () { var testSetMAV = [ {"value": 'X', "score": 0.00}, {"value": 'N', "score": 0.85}, {"value": 'A', "score": 0.62}, {"value": 'L', "score": 0.55}, {"value": 'P', "score": 0.20} ]; var vector_base_av_n = "CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:N"; var vector_base_av_a = "CVSS:3.0/AV:A/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:N"; var vector_base_av_l = "CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:N"; var vector_base_av_p = "CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:N"; var nameMAV = 'MAV'; it('Test Modified Attack Vector : '+testSetMAV[0].value+' (AV:N)', function () { var value = testSetMAV[0].value; var score = testSetMAV[1].score; var base = new CVSS3.BaseMetrics(vector_base_av_n); var envMav = new CVSS3.EnvironmentalMetrics.MAV(value); envMav.getName().should.equal(nameMAV); envMav.getVector().should.equal(nameMAV+':'+value); envMav.getScore(base).should.equal(score); }); it('Test Modified Attack Vector : '+testSetMAV[0].value+' (AV:A)', function () { var value = testSetMAV[0].value; var score = testSetMAV[2].score; var base = new CVSS3.BaseMetrics(vector_base_av_a); var envMav = new CVSS3.EnvironmentalMetrics.MAV(value); envMav.getName().should.equal(nameMAV); envMav.getVector().should.equal(nameMAV+':'+value); envMav.getScore(base).should.equal(score); }); it('Test Modified Attack Vector : '+testSetMAV[0].value+' (AV:L)', function () { var value = testSetMAV[0].value; var score = testSetMAV[3].score; var base = new CVSS3.BaseMetrics(vector_base_av_l); var envMav = new CVSS3.EnvironmentalMetrics.MAV(value); envMav.getName().should.equal(nameMAV); envMav.getVector().should.equal(nameMAV+':'+value); envMav.getScore(base).should.equal(score); }); it('Test Modified Attack Vector : '+testSetMAV[0].value+' (AV:P)', function () { var value = testSetMAV[0].value; var score = testSetMAV[4].score; var base = new CVSS3.BaseMetrics(vector_base_av_p); var envMav = new CVSS3.EnvironmentalMetrics.MAV(value); envMav.getName().should.equal(nameMAV); envMav.getVector().should.equal(nameMAV+':'+value); envMav.getScore(base).should.equal(score); envMav.getScore(null).should.equal(score); envMav.getScore().should.equal(score); }); it('Test Modified Attack Vector : null', function () { var value = testSetMAV[0].value; var score = testSetMAV[4].score; var base = new CVSS3.BaseMetrics(vector_base_av_p); var envMav = new CVSS3.EnvironmentalMetrics.MAV(null); envMav.getName().should.equal(nameMAV); envMav.getVector().should.equal(nameMAV+':'+value); envMav.getScore(base).should.equal(score); envMav.getScore(null).should.equal(score); envMav.getScore().should.equal(score); }); it('Test Modified Attack Vector : undefined', function () { var value = testSetMAV[0].value; var score = testSetMAV[4].score; var base = new CVSS3.BaseMetrics(vector_base_av_p); var envMav = new CVSS3.EnvironmentalMetrics.MAV(); //no argument envMav.getName().should.equal(nameMAV); envMav.getVector().should.equal(nameMAV+':'+value); envMav.getScore(base).should.equal(score); envMav.getScore(null).should.equal(score); envMav.getScore().should.equal(score); }); it('Test Modified Attack Vector : '+testSetMAV[1].value, function () { var value = testSetMAV[1].value; var score = testSetMAV[1].score; var base = new CVSS3.BaseMetrics(vector_base_av_n); var envMav = new CVSS3.EnvironmentalMetrics.MAV(value); envMav.getName().should.equal(nameMAV); envMav.getVector().should.equal(nameMAV+':'+value); envMav.getScore(base).should.equal(score); }); it('Test Modified Attack Vector : '+testSetMAV[2].value, function () { var value = testSetMAV[2].value; var score = testSetMAV[2].score; var base = new CVSS3.BaseMetrics(vector_base_av_n); var envMav = new CVSS3.EnvironmentalMetrics.MAV(value); envMav.getName().should.equal(nameMAV); envMav.getVector().should.equal(n