Lines 43-51
package org.openide.filesystems;
Link Here
|
43 |
|
43 |
|
44 |
import java.io.File; |
44 |
import java.io.File; |
45 |
import java.net.URL; |
45 |
import java.net.URL; |
46 |
import org.netbeans.junit.MockServices; |
|
|
47 |
import org.netbeans.junit.NbTestCase; |
46 |
import org.netbeans.junit.NbTestCase; |
|
|
47 |
import org.openide.filesystems.test.TestFileUtils; |
48 |
import org.openide.util.Utilities; |
48 |
import org.openide.util.Utilities; |
|
|
49 |
import org.openide.util.test.MockLookup; |
49 |
|
50 |
|
50 |
/** |
51 |
/** |
51 |
* @author Jesse Glick |
52 |
* @author Jesse Glick |
Lines 64-86
public class FileUtilTest extends NbTest
Link Here
|
64 |
assertTrue(root.isDirectory()); |
65 |
assertTrue(root.isDirectory()); |
65 |
LocalFileSystem lfs = new LocalFileSystem(); |
66 |
LocalFileSystem lfs = new LocalFileSystem(); |
66 |
lfs.setRootDirectory(root); |
67 |
lfs.setRootDirectory(root); |
67 |
LFS_ROOT = lfs.getRoot(); |
68 |
final FileObject LFS_ROOT = lfs.getRoot(); |
68 |
MockServices.setServices(TestUM.class); |
69 |
MockLookup.setInstances(new URLMapper() { |
|
|
70 |
public URL getURL(FileObject fo, int type) { |
71 |
return null; |
72 |
} |
73 |
public FileObject[] getFileObjects(URL url) { |
74 |
if (url.toExternalForm().equals("file:/")) { |
75 |
return new FileObject[] {LFS_ROOT}; |
76 |
} else { |
77 |
return null; |
78 |
} |
79 |
} |
80 |
}); |
81 |
URLMapper.reset(); |
69 |
assertEquals(LFS_ROOT, FileUtil.toFileObject(root)); |
82 |
assertEquals(LFS_ROOT, FileUtil.toFileObject(root)); |
70 |
} |
83 |
} |
71 |
|
84 |
|
72 |
private static FileObject LFS_ROOT; |
85 |
public void testArchiveConversion() throws Exception { |
73 |
public static class TestUM extends URLMapper { |
86 |
final LocalFileSystem lfs = new LocalFileSystem(); |
74 |
public URL getURL(FileObject fo, int type) { |
87 |
clearWorkDir(); |
75 |
throw new UnsupportedOperationException(); |
88 |
lfs.setRootDirectory(getWorkDir()); |
76 |
} |
89 |
MockLookup.setInstances(new URLMapper() { |
77 |
public FileObject[] getFileObjects(URL url) { |
90 |
String rootURL = lfs.getRoot().getURL().toString(); |
78 |
if (url.toExternalForm().equals("file:/")) { |
91 |
@Override |
79 |
return new FileObject[] {LFS_ROOT}; |
92 |
public FileObject[] getFileObjects(URL url) { |
80 |
} else { |
93 |
String u = url.toString(); |
|
|
94 |
FileObject f = null; |
95 |
if (u.startsWith(rootURL)) { |
96 |
f = lfs.findResource(u.substring(rootURL.length())); |
97 |
} |
98 |
return f != null ? new FileObject[] {f} : null; |
99 |
} |
100 |
@Override |
101 |
public URL getURL(FileObject fo, int type) { |
81 |
return null; |
102 |
return null; |
82 |
} |
103 |
} |
83 |
} |
104 |
}); |
|
|
105 |
URLMapper.reset(); |
106 |
|
107 |
TestFileUtils.writeFile(lfs.getRoot(), "README", "A random file with some stuff in it."); |
108 |
assertCorrectURL("README", null, null); // not an archive |
109 |
TestFileUtils.writeFile(lfs.getRoot(), "README.txt", "A random file with some stuff in it."); |
110 |
assertCorrectURL("README.txt", null, null); // not an archive either |
111 |
TestFileUtils.writeFile(lfs.getRoot(), "empty.zip", ""); |
112 |
assertCorrectURL("empty.zip", "jar:", "empty.zip!/"); |
113 |
TestFileUtils.writeZipFile(lfs.getRoot(), "normal.zip", "something:text inside a ZIP entry"); |
114 |
assertCorrectURL("normal.zip", "jar:", "normal.zip!/"); |
115 |
assertCorrectURL("nonexistent.zip", "jar:", "nonexistent.zip!/"); |
116 |
lfs.getRoot().createFolder("folder"); |
117 |
assertCorrectURL("folder", "", "folder/"); |
118 |
lfs.getRoot().createFolder("some.folder"); |
119 |
assertCorrectURL("some.folder", "", "some.folder/"); |
120 |
assertCorrectURL("nonexistent", "", "nonexistent/"); |
121 |
assertCorrectURL("non existent.zip", "jar:", "non%20existent.zip!/"); |
122 |
assertCorrectURL("non existent", "", "non%20existent/"); |
123 |
|
124 |
assertCorrectFile("folder", "", "folder/"); |
125 |
assertCorrectFile("stuff.zip", "jar:", "stuff.zip!/"); |
126 |
assertCorrectFile(null, "jar:", "stuff.zip!/subentry/"); |
127 |
assertCorrectFile(null, "http:", ""); |
128 |
// Impossible to even construct such a URL: assertCorrectFolder("stuff.zip", "jar:", "stuff.zip"); |
129 |
assertCorrectFile("stuff.zip", "", "stuff.zip"); |
130 |
assertCorrectFile("folder", "", "folder"); |
131 |
assertCorrectFile("fol der", "", "fol%20der/"); |
132 |
assertCorrectFile("stu ff.zip", "jar:", "stu%20ff.zip!/"); |
133 |
assertCorrectFile("stu ff.zip", "", "stu%20ff.zip"); |
134 |
assertCorrectFile("fol der", "", "fol%20der"); |
135 |
} |
136 |
private void assertCorrectURL(String filename, String expectedURLPrefix, String expectedURLSuffix) throws Exception { |
137 |
File d = getWorkDir(); |
138 |
assertEquals(expectedURLSuffix == null ? null : new URL(expectedURLPrefix + d.toURI() + expectedURLSuffix), |
139 |
FileUtil.urlForArchiveOrDir(new File(d, filename))); |
140 |
} |
141 |
private void assertCorrectFile(String expectedFilename, String urlPrefix, String urlSuffix) throws Exception { |
142 |
assertEquals(expectedFilename == null ? null : new File(getWorkDir(), expectedFilename), |
143 |
FileUtil.archiveOrDirForURL(new URL(urlPrefix + getWorkDir().toURI() + urlSuffix))); |
84 |
} |
144 |
} |
85 |
|
145 |
|
86 |
} |
146 |
} |