1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.owasp.dependencycheck.analyzer;
19
20 import org.junit.After;
21 import org.junit.Before;
22 import org.junit.Test;
23 import org.owasp.dependencycheck.BaseTest;
24 import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
25 import org.owasp.dependencycheck.dependency.Dependency;
26
27 import java.io.File;
28
29 import static org.hamcrest.CoreMatchers.containsString;
30 import static org.hamcrest.CoreMatchers.is;
31 import static org.junit.Assert.*;
32
33
34
35
36
37
38 public class RubyGemspecAnalyzerTest extends BaseTest {
39
40
41
42
43 RubyGemspecAnalyzer analyzer;
44
45
46
47
48
49
50 @Before
51 public void setUp() throws Exception {
52 analyzer = new RubyGemspecAnalyzer();
53 analyzer.setFilesMatched(true);
54 analyzer.initialize();
55 }
56
57
58
59
60
61
62 @After
63 public void tearDown() throws Exception {
64 analyzer.close();
65 analyzer = null;
66 }
67
68
69
70
71 @Test
72 public void testGetName() {
73 assertThat(analyzer.getName(), is("Ruby Gemspec Analyzer"));
74 }
75
76
77
78
79 @Test
80 public void testSupportsFiles() {
81 assertThat(analyzer.accept(new File("test.gemspec")), is(true));
82 assertThat(analyzer.accept(new File("Rakefile")), is(true));
83 }
84
85
86
87
88
89
90 @Test
91 public void testAnalyzePackageJson() throws AnalysisException {
92 final Dependency result = new Dependency(BaseTest.getResourceAsFile(this,
93 "ruby/vulnerable/gems/specifications/rest-client-1.7.2.gemspec"));
94 analyzer.analyze(result, null);
95 final String vendorString = result.getVendorEvidence().toString();
96 assertThat(vendorString, containsString("REST Client Team"));
97 assertThat(vendorString, containsString("rest-client_project"));
98 assertThat(vendorString, containsString("rest.client@librelist.com"));
99 assertThat(vendorString, containsString("https://github.com/rest-client/rest-client"));
100 assertThat(result.getProductEvidence().toString(), containsString("rest-client"));
101 assertThat(result.getVersionEvidence().toString(), containsString("1.7.2"));
102 }
103 }