Explorar el Código

Replace TestFrameManager with a mock, make the WritableFrameContainer

harness close windows properly
tags/0.6.3m1rc1
Chris Smith hace 15 años
padre
commit
8d0b6c83a0

+ 2
- 2
test/com/dmdirc/harness/TestConfigSource.java Ver fichero

@@ -31,8 +31,8 @@ public class TestConfigSource extends ConfigSource {
31 31
         return option;
32 32
     }
33 33
 
34
-    @Override @Deprecated
35
-    public boolean hasOption(String domain, String option) {
34
+    @Override
35
+    protected boolean hasOption(String domain, String option) {
36 36
         return Boolean.parseBoolean(domain);
37 37
     }
38 38
 }

+ 0
- 52
test/com/dmdirc/harness/TestFrameManager.java Ver fichero

@@ -1,52 +0,0 @@
1
-/*
2
- * Copyright (c) 2006-2009 Chris Smith, Shane Mc Cormack, Gregory Holmes
3
- *
4
- * Permission is hereby granted, free of charge, to any person obtaining a copy
5
- * of this software and associated documentation files (the "Software"), to deal
6
- * in the Software without restriction, including without limitation the rights
7
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- * copies of the Software, and to permit persons to whom the Software is
9
- * furnished to do so, subject to the following conditions:
10
- *
11
- * The above copyright notice and this permission notice shall be included in
12
- * all copies or substantial portions of the Software.
13
- *
14
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- * SOFTWARE.
21
- */
22
-
23
-package com.dmdirc.harness;
24
-
25
-import com.dmdirc.FrameContainer;
26
-import com.dmdirc.addons.ui_dummy.DummyFrameManager;
27
-
28
-public class TestFrameManager extends DummyFrameManager {
29
-
30
-    public int orphans = 0;
31
-    public int children = 0;
32
-
33
-    @Override
34
-    public void addWindow(FrameContainer window) {
35
-        orphans++;
36
-    }
37
-
38
-    @Override
39
-    public void addWindow(FrameContainer parent, FrameContainer window) {
40
-        children++;
41
-    }
42
-
43
-    @Override
44
-    public void delWindow(FrameContainer window) {
45
-        orphans--;
46
-    }
47
-
48
-    @Override
49
-    public void delWindow(FrameContainer parent, FrameContainer window) {
50
-        children--;
51
-    }
52
-}

+ 3
- 1
test/com/dmdirc/harness/TestWritableFrameContainer.java Ver fichero

@@ -26,6 +26,7 @@ import com.dmdirc.Server;
26 26
 import com.dmdirc.WritableFrameContainer;
27 27
 import com.dmdirc.config.ConfigManager;
28 28
 import com.dmdirc.config.IdentityManager;
29
+import com.dmdirc.ui.WindowManager;
29 30
 import com.dmdirc.ui.interfaces.InputWindow;
30 31
 
31 32
 public class TestWritableFrameContainer extends WritableFrameContainer {
@@ -60,7 +61,8 @@ public class TestWritableFrameContainer extends WritableFrameContainer {
60 61
     }
61 62
 
62 63
     public void windowClosing() {
63
-        // Do nothing
64
+        System.out.println("windowClosing");
65
+        WindowManager.removeWindow(window);
64 66
     }
65 67
 
66 68
     public Server getServer() {

+ 63
- 21
test/com/dmdirc/ui/WindowManagerTest.java Ver fichero

@@ -21,52 +21,94 @@
21 21
  */
22 22
 package com.dmdirc.ui;
23 23
 
24
-import com.dmdirc.harness.TestFrameManager;
24
+import com.dmdirc.FrameContainer;
25 25
 import com.dmdirc.harness.TestWritableFrameContainer;
26 26
 import com.dmdirc.addons.ui_dummy.DummyInputWindow;
27
+import com.dmdirc.ui.interfaces.FrameManager;
27 28
 import com.dmdirc.ui.interfaces.Window;
28 29
 
29 30
 import org.junit.Test;
30 31
 import static org.junit.Assert.*;
32
+import static org.mockito.Mockito.*;
31 33
 
32 34
 public class WindowManagerTest {
33 35
 
34 36
     @Test
35
-    public void testFrameManagers() {
36
-        final TestFrameManager tfm = new TestFrameManager();
37
+    public void testAddRoot() {
38
+        final FrameManager tfm = mock(FrameManager.class);
37 39
         final Window parent = new DummyInputWindow(new TestWritableFrameContainer(512), null);
38
-        final Window child = new DummyInputWindow(new TestWritableFrameContainer(512), null);
39 40
         
40 41
         WindowManager.addFrameManager(tfm);
41
-        
42
-        assertEquals(0, tfm.orphans);
43
-        assertEquals(0, tfm.children);
42
+
43
+        verify(tfm, never()).addWindow((FrameContainer) anyObject());
44
+        verify(tfm, never()).addWindow((FrameContainer) anyObject(), (FrameContainer) anyObject());
44 45
         
45 46
         WindowManager.addWindow(parent);
46 47
         
47
-        assertEquals(1, tfm.orphans);
48
-        assertEquals(0, tfm.children);
48
+        verify(tfm).addWindow(same(parent.getContainer()));
49
+        verify(tfm, never()).addWindow((FrameContainer) anyObject(), (FrameContainer) anyObject());
50
+    }
51
+
52
+    @Test
53
+    public void testAddChild() {
54
+        final FrameManager tfm = mock(FrameManager.class);
55
+        final Window parent = new DummyInputWindow(new TestWritableFrameContainer(512), null);
56
+        final Window child = new DummyInputWindow(new TestWritableFrameContainer(512), null);
57
+        WindowManager.addWindow(parent);
58
+        WindowManager.addFrameManager(tfm);
49 59
         
50 60
         WindowManager.addWindow(parent, child);
51 61
         
52
-        assertEquals(1, tfm.orphans);
53
-        assertEquals(1, tfm.children);
54
-        
62
+        verify(tfm, never()).addWindow((FrameContainer) anyObject());
63
+        verify(tfm).addWindow(same(parent.getContainer()), same(child.getContainer()));
64
+    }
65
+
66
+    @Test
67
+    public void testRemoveRoot() {
68
+        final FrameManager tfm = mock(FrameManager.class);
69
+        final Window parent = new DummyInputWindow(new TestWritableFrameContainer(512), null);
70
+        final Window child = new DummyInputWindow(new TestWritableFrameContainer(512), null);
71
+        WindowManager.addWindow(parent);
72
+        WindowManager.addFrameManager(tfm);
73
+
55 74
         WindowManager.removeWindow(parent);
56 75
         
57
-        assertEquals(0, tfm.orphans);
58
-        assertEquals(0, tfm.children);  
59
-        
76
+        verify(tfm).delWindow(same(parent.getContainer()));
77
+    }
78
+
79
+    @Test
80
+    public void testRemoveChild() {
81
+        final FrameManager tfm = mock(FrameManager.class);
82
+        final Window parent = new DummyInputWindow(new TestWritableFrameContainer(512), null);
83
+        final Window child = new DummyInputWindow(new TestWritableFrameContainer(512), null);
84
+        WindowManager.addWindow(parent);
85
+        WindowManager.addWindow(parent, child);
86
+        WindowManager.addFrameManager(tfm);
87
+
60 88
         WindowManager.removeWindow(child);
89
+
90
+        verify(tfm, never()).addWindow((FrameContainer) anyObject());
91
+        verify(tfm, never()).addWindow((FrameContainer) anyObject(), (FrameContainer) anyObject());
92
+        verify(tfm, never()).delWindow((FrameContainer) anyObject());
93
+        verify(tfm).delWindow(same(parent.getContainer()), same(child.getContainer()));
94
+    }
95
+
96
+    @Test
97
+    public void testRemoveFrameManager() {
98
+        final FrameManager tfm = mock(FrameManager.class);
99
+        final Window parent = new DummyInputWindow(new TestWritableFrameContainer(512), null);
100
+        final Window child = new DummyInputWindow(new TestWritableFrameContainer(512), null);
101
+        WindowManager.addWindow(parent);
61 102
         
62
-        assertEquals(0, tfm.orphans);
63
-        assertEquals(0, tfm.children);       
64
-        
103
+        WindowManager.addFrameManager(tfm);
104
+
65 105
         WindowManager.removeFrameManager(tfm);
66
-        WindowManager.addWindow(parent);
106
+        WindowManager.addWindow(parent, child);
67 107
         
68
-        assertEquals(0, tfm.orphans);
69
-        assertEquals(0, tfm.children);       
108
+        verify(tfm, never()).addWindow((FrameContainer) anyObject());
109
+        verify(tfm, never()).addWindow((FrameContainer) anyObject(), (FrameContainer) anyObject());
110
+        verify(tfm, never()).delWindow((FrameContainer) anyObject());
111
+        verify(tfm, never()).delWindow((FrameContainer) anyObject(), (FrameContainer) anyObject());
70 112
     }
71 113
     
72 114
     @Test

Loading…
Cancelar
Guardar