Browse Source

Add unit tests for URLBuilder

Change-Id: Ia85592b8b5bdd55159972e2fcc1c46e41ea2ce96
Reviewed-on: http://gerrit.dmdirc.com/2872
Reviewed-by: Chris Smith <chris@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
tags/0.8rc1
Greg Holmes 10 years ago
parent
commit
34da22339c
2 changed files with 137 additions and 1 deletions
  1. 1
    1
      src/com/dmdirc/ui/themes/ThemeManager.java
  2. 136
    0
      test/com/dmdirc/util/URLBuilderTest.java

+ 1
- 1
src/com/dmdirc/ui/themes/ThemeManager.java View File

@@ -35,7 +35,7 @@ import java.util.Map;
35 35
 /**
36 36
  * Manages available themes.
37 37
  */
38
-public final class ThemeManager {
38
+public class ThemeManager {
39 39
 
40 40
     /** The identity controller to read settings from. */
41 41
     private final IdentityController identityController;

+ 136
- 0
test/com/dmdirc/util/URLBuilderTest.java View File

@@ -0,0 +1,136 @@
1
+package com.dmdirc.util;
2
+
3
+import com.dmdirc.plugins.PluginInfo;
4
+import com.dmdirc.plugins.PluginManager;
5
+import com.dmdirc.plugins.PluginMetaData;
6
+import com.dmdirc.ui.themes.ThemeManager;
7
+
8
+import java.net.MalformedURLException;
9
+import java.net.URL;
10
+
11
+import javax.inject.Provider;
12
+
13
+import org.junit.Assert;
14
+import org.junit.Before;
15
+import org.junit.Test;
16
+import org.junit.runner.RunWith;
17
+import org.mockito.Matchers;
18
+import org.mockito.Mock;
19
+import org.mockito.runners.MockitoJUnitRunner;
20
+
21
+import static org.mockito.Mockito.when;
22
+
23
+@RunWith(MockitoJUnitRunner.class)
24
+public class URLBuilderTest {
25
+
26
+    @Mock private Provider<PluginManager> pluginManagerProvider;
27
+    @Mock private Provider<ThemeManager> themeManagerProvider;
28
+    @Mock private PluginManager pluginManager;
29
+    @Mock private ThemeManager themeManager;
30
+    @Mock private PluginInfo pluginInfo;
31
+    @Mock private PluginMetaData pluginMetaData;
32
+
33
+    @Before
34
+    public void setup() throws MalformedURLException {
35
+        when(pluginManagerProvider.get()).thenReturn(pluginManager);
36
+        when(themeManagerProvider.get()).thenReturn(themeManager);
37
+        when(pluginManager.getPluginInfoByName(Matchers.anyString())).thenReturn(pluginInfo);
38
+        when(themeManager.getDirectory()).thenReturn("/themes/");
39
+        when(pluginInfo.getMetaData()).thenReturn(pluginMetaData);
40
+        when(pluginMetaData.getPluginUrl()).thenReturn(new URL("file://url/testPlugin"));
41
+    }
42
+
43
+    @Test
44
+    public void testGetUrlForFileWithoutFilePrefix() throws MalformedURLException {
45
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
46
+        Assert.assertEquals(new URL("file://test"), urlBuilder.getUrlForFile("test"));
47
+    }
48
+
49
+    @Test
50
+    public void testGetUrlForFileWithFilePrefix() throws MalformedURLException {
51
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
52
+        Assert.assertEquals(new URL("file://test"), urlBuilder.getUrlForFile("file://test"));
53
+    }
54
+
55
+    @Test
56
+    public void testGetUrlForJarFile() throws MalformedURLException {
57
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
58
+        Assert.assertEquals(new URL("jar:file:/jarFile!/test"), urlBuilder.getUrlForJarFile("jarFile", "test"));
59
+    }
60
+
61
+    @Test
62
+    public void testGetUrlForDMDircResourceNonExistant() {
63
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
64
+        Assert.assertNull(urlBuilder.getUrlForDMDircResource("test"));
65
+    }
66
+
67
+    @Test
68
+    public void testGetUrlForDMDircResource() throws MalformedURLException {
69
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
70
+        URL url = urlBuilder.getUrlForDMDircResource("com/dmdirc/Main.class");
71
+        Assert.assertEquals("file", url.getProtocol());
72
+        Assert.assertTrue(url.getFile().endsWith("com/dmdirc/Main.class"));
73
+    }
74
+
75
+    @Test
76
+    public void testGetUrlForThemeResource() throws MalformedURLException {
77
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
78
+        Assert.assertEquals(new URL("jar:file:/themes/testTheme.zip!/testFile"), urlBuilder.getUrlForThemeResource("testTheme", "testFile"));
79
+    }
80
+
81
+    @Test
82
+    public void testGetUrlForPluginResource() throws MalformedURLException {
83
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
84
+        Assert.assertEquals(new URL("jar:file:/testPlugin!/testFile"), urlBuilder.getUrlForPluginResource("testPlugin", "testFile"));
85
+    }
86
+
87
+    @Test
88
+    public void testGetUrlDMDirc() {
89
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
90
+        URL url = urlBuilder.getUrl("dmdirc://com/dmdirc/Main.class");
91
+        Assert.assertEquals("file", url.getProtocol());
92
+        Assert.assertTrue(url.getFile().endsWith("com/dmdirc/Main.class"));
93
+    }
94
+
95
+    @Test
96
+    public void testGetUrlJar() throws MalformedURLException {
97
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
98
+        Assert.assertEquals(new URL("jar:file:/jarFile!/testFile"), urlBuilder.getUrl("jar://jarFile:testFile"));
99
+    }
100
+
101
+    @Test
102
+    public void testGetUrlZip() throws MalformedURLException {
103
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
104
+        Assert.assertEquals(new URL("jar:file:/zipFile!/testFile"), urlBuilder.getUrl("zip://zipFile:testFile"));
105
+    }
106
+
107
+    @Test
108
+    public void testGetUrlPlugin() throws MalformedURLException {
109
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
110
+        Assert.assertEquals(new URL("jar:file:/testPlugin!/testFile"), urlBuilder.getUrl("plugin://pluginFile:testFile"));
111
+    }
112
+
113
+    @Test
114
+    public void testGetUrlTheme() throws MalformedURLException {
115
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
116
+        Assert.assertEquals(new URL("jar:file:/themes/themeFile.zip!/testFile"), urlBuilder.getUrl("theme://themeFile:testFile"));
117
+    }
118
+
119
+    @Test
120
+    public void testGetUrlHTTP() throws MalformedURLException {
121
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
122
+        Assert.assertEquals(new URL("http://testDomain"), urlBuilder.getUrl("http://testDomain"));
123
+    }
124
+
125
+    @Test
126
+    public void testGetUrlFileWithPrefix() throws MalformedURLException {
127
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
128
+        Assert.assertEquals(new URL("file://testFile"), urlBuilder.getUrl("file://testFile"));
129
+    }
130
+
131
+    @Test
132
+    public void testGetUrlFileWithoutPrefix() throws MalformedURLException {
133
+        URLBuilder urlBuilder = new URLBuilder(pluginManagerProvider, themeManagerProvider);
134
+        Assert.assertEquals(new URL("file://testFile"), urlBuilder.getUrl("testFile"));
135
+    }
136
+}

Loading…
Cancel
Save