* feat(report): Add NVD as a src for mitigations. * feat(report): display "Vendor Advisory" URL in NVD * feat(report): display patch urls in report, tui
155 lines
3.3 KiB
Go
155 lines
3.3 KiB
Go
package models
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestExcept(t *testing.T) {
|
|
var tests = []struct {
|
|
in CveContents
|
|
out CveContents
|
|
}{{
|
|
in: CveContents{
|
|
RedHat: {Type: RedHat},
|
|
Ubuntu: {Type: Ubuntu},
|
|
Debian: {Type: Debian},
|
|
},
|
|
out: CveContents{
|
|
RedHat: {Type: RedHat},
|
|
},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
actual := tt.in.Except(Ubuntu, Debian)
|
|
if !reflect.DeepEqual(tt.out, actual) {
|
|
t.Errorf("\nexpected: %v\n actual: %v\n", tt.out, actual)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestSourceLinks(t *testing.T) {
|
|
type in struct {
|
|
lang string
|
|
cveID string
|
|
cont CveContents
|
|
}
|
|
var tests = []struct {
|
|
in in
|
|
out []CveContentStr
|
|
}{
|
|
// lang: ja
|
|
{
|
|
in: in{
|
|
lang: "ja",
|
|
cveID: "CVE-2017-6074",
|
|
cont: CveContents{
|
|
Jvn: {
|
|
Type: Jvn,
|
|
SourceLink: "https://jvn.jp/vu/JVNVU93610402/",
|
|
},
|
|
RedHat: {
|
|
Type: RedHat,
|
|
SourceLink: "https://access.redhat.com/security/cve/CVE-2017-6074",
|
|
},
|
|
NvdXML: {
|
|
Type: NvdXML,
|
|
SourceLink: "https://nvd.nist.gov/vuln/detail/CVE-2017-6074",
|
|
},
|
|
Nvd: {
|
|
Type: Nvd,
|
|
References: []Reference{
|
|
{
|
|
Link: "https://lists.apache.org/thread.html/765be3606d865de513f6df9288842c3cf58b09a987c617a535f2b99d@%3Cusers.tapestry.apache.org%3E",
|
|
Source: "",
|
|
RefID: "",
|
|
Tags: []string{"Vendor Advisory"},
|
|
},
|
|
{
|
|
Link: "http://yahoo.com",
|
|
Source: "",
|
|
RefID: "",
|
|
Tags: []string{"Vendor"},
|
|
},
|
|
},
|
|
SourceLink: "https://nvd.nist.gov/vuln/detail/CVE-2017-6074",
|
|
},
|
|
},
|
|
},
|
|
out: []CveContentStr{
|
|
{
|
|
Type: Nvd,
|
|
Value: "https://lists.apache.org/thread.html/765be3606d865de513f6df9288842c3cf58b09a987c617a535f2b99d@%3Cusers.tapestry.apache.org%3E",
|
|
},
|
|
{
|
|
Type: Nvd,
|
|
Value: "https://nvd.nist.gov/vuln/detail/CVE-2017-6074",
|
|
},
|
|
{
|
|
Type: NvdXML,
|
|
Value: "https://nvd.nist.gov/vuln/detail/CVE-2017-6074",
|
|
},
|
|
{
|
|
Type: RedHat,
|
|
Value: "https://access.redhat.com/security/cve/CVE-2017-6074",
|
|
},
|
|
{
|
|
Type: Jvn,
|
|
Value: "https://jvn.jp/vu/JVNVU93610402/",
|
|
},
|
|
},
|
|
},
|
|
// lang: en
|
|
{
|
|
in: in{
|
|
lang: "en",
|
|
cveID: "CVE-2017-6074",
|
|
cont: CveContents{
|
|
Jvn: {
|
|
Type: Jvn,
|
|
SourceLink: "https://jvn.jp/vu/JVNVU93610402/",
|
|
},
|
|
RedHat: {
|
|
Type: RedHat,
|
|
SourceLink: "https://access.redhat.com/security/cve/CVE-2017-6074",
|
|
},
|
|
NvdXML: {
|
|
Type: NvdXML,
|
|
SourceLink: "https://nvd.nist.gov/vuln/detail/CVE-2017-6074",
|
|
},
|
|
},
|
|
},
|
|
out: []CveContentStr{
|
|
{
|
|
Type: NvdXML,
|
|
Value: "https://nvd.nist.gov/vuln/detail/CVE-2017-6074",
|
|
},
|
|
{
|
|
Type: RedHat,
|
|
Value: "https://access.redhat.com/security/cve/CVE-2017-6074",
|
|
},
|
|
},
|
|
},
|
|
// lang: empty
|
|
{
|
|
in: in{
|
|
lang: "en",
|
|
cveID: "CVE-2017-6074",
|
|
cont: CveContents{},
|
|
},
|
|
out: []CveContentStr{
|
|
{
|
|
Type: Nvd,
|
|
Value: "https://nvd.nist.gov/vuln/detail/CVE-2017-6074",
|
|
},
|
|
},
|
|
},
|
|
}
|
|
for i, tt := range tests {
|
|
actual := tt.in.cont.PrimarySrcURLs(tt.in.lang, "redhat", tt.in.cveID)
|
|
if !reflect.DeepEqual(tt.out, actual) {
|
|
t.Errorf("\n[%d] expected: %v\n actual: %v\n", i, tt.out, actual)
|
|
}
|
|
}
|
|
}
|