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 |
} |