Lines 183-204
Link Here
|
183 |
fail(); |
183 |
fail(); |
184 |
} |
184 |
} |
185 |
}; |
185 |
}; |
|
|
186 |
class Once implements Runnable { |
187 |
int once; |
188 |
|
189 |
public void run() { |
190 |
assertEquals("No calls yet", 0, once); |
191 |
once++; |
192 |
} |
193 |
} |
194 |
final Once post = new Once(); |
186 |
final FileChangeListener listener1 = new FileChangeAdapter(){ |
195 |
final FileChangeListener listener1 = new FileChangeAdapter(){ |
187 |
@Override |
196 |
@Override |
188 |
public void fileDataCreated(FileEvent fe) { |
197 |
public void fileDataCreated(FileEvent fe) { |
189 |
fold.removeFileChangeListener(noFileDataCreatedListener); |
198 |
fold.removeFileChangeListener(noFileDataCreatedListener); |
190 |
fold.addFileChangeListener(noFileDataCreatedListener); |
199 |
fold.addFileChangeListener(noFileDataCreatedListener); |
|
|
200 |
fe.runWhenDeliveryOver(post); |
191 |
} |
201 |
} |
192 |
}; |
202 |
}; |
193 |
|
203 |
assertEquals("Not called yet", 0, post.once); |
194 |
try { |
204 |
try { |
195 |
fold.getFileSystem().addFileChangeListener(listener1); |
205 |
fold.getFileSystem().addFileChangeListener(listener1); |
196 |
fold.getFileSystem().runAtomicAction(new FileSystem.AtomicAction(){ |
206 |
fold.getFileSystem().runAtomicAction(new FileSystem.AtomicAction(){ |
197 |
public void run() throws java.io.IOException { |
207 |
public void run() throws java.io.IOException { |
198 |
fold.createData("file1"); |
208 |
fold.createData("file1"); |
199 |
fold.createData("file2"); |
209 |
fold.createData("file2"); |
|
|
210 |
assertEquals("Called not", 0, post.once); |
200 |
} |
211 |
} |
201 |
}); |
212 |
}); |
|
|
213 |
assertEquals("Called once", 1, post.once); |
202 |
} finally { |
214 |
} finally { |
203 |
fold.getFileSystem().removeFileChangeListener(listener1); |
215 |
fold.getFileSystem().removeFileChangeListener(listener1); |
204 |
fold.removeFileChangeListener(noFileDataCreatedListener); |
216 |
fold.removeFileChangeListener(noFileDataCreatedListener); |
Lines 989-1009
Link Here
|
989 |
/** Test of fireFileRenamedEvent method, of class org.openide.filesystems.FileObject. */ |
1001 |
/** Test of fireFileRenamedEvent method, of class org.openide.filesystems.FileObject. */ |
990 |
public void testFireFileRenamedEvent_FS() { |
1002 |
public void testFireFileRenamedEvent_FS() { |
991 |
checkSetUp(); |
1003 |
checkSetUp(); |
992 |
FileObject fo = getTestFile1(root); |
1004 |
final FileObject fo = getTestFile1(root); |
993 |
registerDefaultListener(testedFS); |
1005 |
registerDefaultListener(testedFS); |
994 |
FileLock lock = null; |
|
|
995 |
|
1006 |
|
|
|
1007 |
class Immediate extends FileChangeAdapter implements Runnable { |
1008 |
int cnt; |
1009 |
FileRenameEvent fe; |
1010 |
@Override |
1011 |
public void fileRenamed(FileRenameEvent fe) { |
1012 |
int prev = cnt; |
1013 |
fe.runWhenDeliveryOver(this); |
1014 |
assertEquals("run() not called immediately", prev, cnt); |
1015 |
this.fe = fe; |
1016 |
} |
1017 |
public void run() { |
1018 |
cnt++; |
1019 |
} |
1020 |
|
1021 |
void testCallOutsideOfDeliverySystem() { |
1022 |
assertNotNull("There shall be an event", fe); |
1023 |
int prev = cnt; |
1024 |
fe.runWhenDeliveryOver(this); |
1025 |
assertEquals("run() called immediately", prev + 1, cnt); |
1026 |
} |
1027 |
} |
1028 |
Immediate immediately = new Immediate(); |
1029 |
fo.addFileChangeListener(immediately); |
1030 |
|
1031 |
final FileLock[] lock = new FileLock[1]; |
996 |
try { |
1032 |
try { |
997 |
lock = fo.lock(); |
1033 |
lock[0] = fo.lock(); |
998 |
fo.rename(lock,fo.getName()+"X",fo.getExt()+"X"); |
1034 |
FileUtil.runAtomicAction(new FileSystem.AtomicAction() { |
|
|
1035 |
public void run() throws IOException { |
1036 |
fo.rename(lock[0],fo.getName()+"X",fo.getExt()+"X"); |
1037 |
} |
1038 |
}); |
999 |
} catch (IOException iex) { |
1039 |
} catch (IOException iex) { |
1000 |
fsAssert("FileObject could not be renamed. So there was expected fs or fo are read-only", |
1040 |
fsAssert("FileObject could not be renamed. So there was expected fs or fo are read-only", |
1001 |
fs.isReadOnly() || root.isReadOnly()); |
1041 |
fs.isReadOnly() || root.isReadOnly()); |
1002 |
fileRenamedAssert("fs or fo is read-only. So no event should be fired",0); |
1042 |
fileRenamedAssert("fs or fo is read-only. So no event should be fired",0); |
1003 |
return; |
1043 |
return; |
1004 |
} finally { |
1044 |
} finally { |
1005 |
if (lock != null) lock.releaseLock(); |
1045 |
if (lock[0] != null) lock[0].releaseLock(); |
1006 |
} |
1046 |
} |
|
|
1047 |
assertEquals("One call", 1, immediately.cnt); |
1048 |
immediately.testCallOutsideOfDeliverySystem(); |
1007 |
|
1049 |
|
1008 |
fileRenamedAssert("",1); |
1050 |
fileRenamedAssert("",1); |
1009 |
fileDataCreatedAssert("fireFileDataCreatedEvent should not be fired ",0); |
1051 |
fileDataCreatedAssert("fireFileDataCreatedEvent should not be fired ",0); |