Statistics
| Revision:

gvsig-scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.lib / org.gvsig.scripting.lib.api / src / test / java / org / gvsig / scripting / TestDialog.java @ 212

History | View | Annotate | Download (4.95 KB)

1
package org.gvsig.scripting;
2

    
3
import java.io.BufferedWriter;
4
import java.io.File;
5
import java.io.FileWriter;
6
import java.io.IOException;
7
import java.util.Iterator;
8
import java.util.List;
9

    
10
import junit.framework.Assert;
11

    
12
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
13

    
14
public abstract class TestDialog extends AbstractLibraryAutoInitTestCase {
15

    
16
        protected ScriptingManager manager;
17
        
18
        @Override
19
        protected void doSetUp() throws Exception {
20
                manager = ScriptingLocator.getManager();
21
        }
22
        
23
        public void setWorkingFolder(){
24
                File file =new File(this.getClass().getClassLoader().getResource("org/gvsig/scripting/home").getFile());
25
                manager.setRootUserFolder(file.getAbsolutePath());
26
        }
27
        
28
        public File getFile(String name){
29
                return new File(manager.getRootUserFolder()+File.separator+name);
30
        }
31
        
32
        public void deleteFolderContent(ScriptingFolder folder){
33
                List<ScriptingUnit> units = folder.getUnits();
34
        Iterator<ScriptingUnit> it = units.iterator();
35
                while(it.hasNext()){
36
                        ScriptingUnit unit = it.next();
37
                        if(unit instanceof ScriptingFolder){
38
                                deleteFolderContent((ScriptingFolder)unit);
39
                                folder.remove(unit);
40
                        }else{
41
                                folder.remove(unit);
42
                        }
43
                }
44
        }
45
        
46
        public void deleteWorkingFolderContent(){
47
                setWorkingFolder();
48
                ScriptingFolder folder = manager.getUserFolder();
49
                deleteFolderContent(folder);
50
        }
51
        
52
        public void checkFile(String fName){
53
                File fscript = getFile(fName);
54
                Assert.assertTrue(fscript.exists());
55
        }
56
        
57
        public void checkScriptDefaultValues(ScriptingDialog script){
58
                Assert.assertEquals("test_dialog", script.getId());
59
                Assert.assertEquals("test_dialog", script.getName());
60
                Assert.assertEquals("python", script.getLangName());
61
                Assert.assertEquals("main", script.getMainName());
62
        }
63
        
64
        public void checkScriptNewValues(ScriptingDialog script){
65
                Assert.assertEquals("test_dialog", script.getId());
66
                Assert.assertEquals("TestDialog", script.getName());
67
                Assert.assertEquals("Tests sobre dialogs", script.getDescription());
68
                Assert.assertEquals("python", script.getLangName());
69
                Assert.assertEquals("main", script.getMainName());
70
                Assert.assertEquals("creator", script.getCreatedBy());
71
                Assert.assertEquals("v1.0", script.getVersion());
72
                Assert.assertEquals("def hola():\n  return 'hola mundo'\n",script.getCode());
73
        }
74
        
75
        public void testCreation(){
76
                deleteWorkingFolderContent();
77
                setWorkingFolder();
78
                ScriptingDialog script = (ScriptingDialog) manager.createUnit(ScriptingManager.UNIT_DIALOG,manager.getUserFolder(),"test_dialog.py");
79
                
80
                script.save();
81
                checkFile("test_dialog.py");
82
                checkFile("test_dialog.dlg");
83
                checkFile("test_dialog.inf");
84
                
85
                checkScriptDefaultValues(script);
86
        }
87

    
88
        public void testOpen(){
89
                testCreation();
90
                ScriptingDialog script = (ScriptingDialog) manager.getScript(getFile("test_dialog.py"));
91
                
92
                checkScriptDefaultValues(script);
93
                deleteWorkingFolderContent();
94
        }
95
        
96
        public void testSave(){
97
                testCreation();
98
                ScriptingDialog script = (ScriptingDialog) manager.getScript(getFile("test_dialog.py"));
99
                
100
                script.setName("TestDialog");
101
                script.setDescription("Tests sobre dialogs");
102
                script.setCode("def hola():\n  return 'hola mundo'\n");
103
                script.setCreatedBy("creator");
104
                script.setVersion("v1.0");
105
                script.save();
106
                
107
                File f = script.getDialogFile();
108
                try {
109
                        BufferedWriter bw = new BufferedWriter(new FileWriter(f));
110
                        bw.write("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" + 
111
                                        "<panel columns=\"1\">\n" +
112
                                        "\t<button action=\"hola\" text=\"press\"/>\n" + 
113
                                        "</panel>");
114
                } catch (IOException e) {
115
                        // TODO Auto-generated catch block
116
                        e.printStackTrace();
117
                }
118
                
119
                script = (ScriptingDialog) manager.getScript(getFile("test_dialog.py"));
120
                checkScriptNewValues(script);
121
                
122
        }
123
        
124
        public void testRename(){
125
                deleteWorkingFolderContent();
126
                testCreation();
127
                ScriptingDialog script = (ScriptingDialog) manager.getScript(getFile("test_dialog.py"));
128
                
129
                Assert.assertFalse(script.rename("test_dialog"));
130
                Assert.assertTrue(script.rename("test_dialog2"));
131
                
132
                script = (ScriptingDialog) manager.getScript(getFile("test_dialog2.py"));
133
                Assert.assertEquals("test_dialog2", script.getId());
134
                
135
                File f = getFile("test_dialog.py");
136
                Assert.assertFalse(f.exists());
137
                f = getFile("test_dialog2.py");
138
                Assert.assertTrue(f.exists());
139
                
140
                deleteWorkingFolderContent();
141
        }
142
        
143
        public void testMove(){
144
                testCreation();
145
                ScriptingFolder folderDestination = (ScriptingFolder) manager.createUnit(ScriptingManager.UNIT_FOLDER,manager.getUserFolder(), "other folder");
146
                checkFile("other folder");
147
                ScriptingDialog script = (ScriptingDialog) manager.getScript(getFile("test_dialog.py"));        
148
                
149
                script.move(folderDestination);
150
                Assert.assertEquals(script.getParent().getPath(),folderDestination.getPath());
151
                deleteWorkingFolderContent();
152
        }
153
        
154
        public void testRun(){
155
        /*        testSave();
156
                ScriptingDialog script = (ScriptingDialog) manager.getScript(getFile("test_dialog.py"));                
157
                
158
                Assert.assertEquals("hola mundo", script.run());
159
                
160
                //setMainName
161
                
162
                //invokeMethod
163
                
164
                //invokeFunction
165
                deleteWorkingFolderContent();*/
166
        }
167

    
168
}