// reset mock response
JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
// close desktop windows/frames
- jalview.gui.Desktop.instance.closeAll_actionPerformed(null);
+ Desktop.instance.closeAll_actionPerformed(null);
// reset debug delay
Jalview2XML.setDebugDelaySave(20);
}
// reset mock response
JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
// close desktop windows/frames
- jalview.gui.Desktop.instance.closeAll_actionPerformed(null);
+ Desktop.instance.closeAll_actionPerformed(null);
// reset debug delay
Cache.setProperty("DEBUG_DELAY_SAVE", "false");
Jalview2XML.setDebugDelaySave(3);
+ // set the project file
+ Desktop.instance.setProjectFile(new File(saveProjectFile));
}
@AfterMethod(alwaysRun = true)
long start = System.currentTimeMillis();
// if a save is attempted it will delay 3s
+ Jalview2XML.setDebugDelaySave(3);
Cache.setProperty("DEBUG_DELAY_SAVE", "true");
// loaded file but haven't done anything, should just quit
long end = System.currentTimeMillis();
Assert.assertEquals(response, QResponse.QUIT);
- Assert.assertTrue(end - start < 1000,
+ Assert.assertTrue(end - start < 500,
"Quit-with-no-save-needed took too long (" + (end - start)
+ "ms)");
Desktop.instance.closeAll_actionPerformed(null);
long start = System.currentTimeMillis();
// start a long save (3s)
+ Jalview2XML.setDebugDelaySave(3);
Cache.setProperty("DEBUG_DELAY_SAVE", "true");
- af.saveAlignment(saveProjectFile, FileFormat.Jalview);
+ Desktop.instance.saveState_actionPerformed(false);
- QResponse response = QuitHandler.getQuitResponse(true,
- QuitHandler.defaultOkQuit, () -> {
- // set FORCE_QUIT without the force quit
- QuitHandler.setResponse(QResponse.FORCE_QUIT);
- return null;
- }, QuitHandler.defaultCancelQuit);
+ // give the saveState thread time to start!
+ Thread.sleep(500);
+
+ // af.saveAlignment(saveProjectFile, FileFormat.Jalview);
+ QResponse response = QuitHandler.getQuitResponse(true);
long end = System.currentTimeMillis();
Assert.assertEquals(response, QResponse.QUIT);
// this is only a two button dialog [Quit] [Cancel] so use NO_OPTION
JvOptionPane.setMockResponse(JvOptionPane.NO_OPTION);
- QResponse response = QuitHandler.getQuitResponse(true,
- QuitHandler.defaultOkQuit, () -> {
- // set FORCE_QUIT without the force quit
- QuitHandler.setResponse(QResponse.FORCE_QUIT);
- return null;
- }, QuitHandler.defaultCancelQuit);
+ QResponse response = QuitHandler.getQuitResponse(true);
// if not saved this would be CANCEL_QUIT
Assert.assertEquals(response, QResponse.QUIT);
// this is only a two button dialog [Quit] [Cancel] so use NO_OPTION
JvOptionPane.setMockResponse(JvOptionPane.NO_OPTION);
- QResponse response = QuitHandler.getQuitResponse(true,
- QuitHandler.defaultOkQuit, () -> {
- // set FORCE_QUIT without the force quit
- QuitHandler.setResponse(QResponse.FORCE_QUIT);
- return null;
- }, QuitHandler.defaultCancelQuit);
+ QResponse response = QuitHandler.getQuitResponse(true);
// if not saved this would be CANCEL_QUIT
Assert.assertEquals(response, QResponse.QUIT);
// this is only a two button dialog [Quit] [Cancel] so use NO_OPTION
JvOptionPane.setMockResponse(JvOptionPane.NO_OPTION);
- QResponse response = QuitHandler.getQuitResponse(true,
- QuitHandler.defaultOkQuit, () -> {
- // set FORCE_QUIT without the force quit
- QuitHandler.setResponse(QResponse.FORCE_QUIT);
- return null;
- }, QuitHandler.defaultCancelQuit);
+ QResponse response = QuitHandler.getQuitResponse(true);
Assert.assertEquals(response, QResponse.CANCEL_QUIT);
Desktop.instance.closeAll_actionPerformed(null);
// this is only a two button dialog [Quit] [Cancel] so use NO_OPTION
JvOptionPane.setMockResponse(JvOptionPane.NO_OPTION);
+ /*
QResponse response = QuitHandler.getQuitResponse(false,
QuitHandler.defaultOkQuit, () -> {
// set FORCE_QUIT without the force quit
QuitHandler.setResponse(QResponse.FORCE_QUIT);
return null;
}, QuitHandler.defaultCancelQuit);
+ */
+ QResponse response = QuitHandler.getQuitResponse(false);
Assert.assertEquals(response, QResponse.QUIT);
Desktop.instance.closeAll_actionPerformed(null);
}
+ @Test(groups = { "Functional" }, singleThreaded = true, priority = 11)
+ public void testForceQuit() throws Exception
+ {
+ String inFile = "examples/uniref50.fa";
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile,
+ DataSourceType.FILE);
+ assertNotNull(af, "Didn't read input file " + inFile);
+
+ long start = System.currentTimeMillis();
+
+ // start a long save (10s)
+ Jalview2XML.setDebugDelaySave(10);
+ Cache.setProperty("DEBUG_DELAY_SAVE", "true");
+ Desktop.instance.saveState_actionPerformed(false);
+
+ // give the saveState thread time to start!
+ Thread.sleep(100);
+
+ // this will select "Force Quit"
+ JvOptionPane.setMockResponse(JvOptionPane.YES_OPTION);
+ QResponse response = QuitHandler.getQuitResponse(true,
+ QuitHandler.defaultOkQuit, () -> {
+ // set FORCE_QUIT without the force quit
+ jalview.bin.Console.debug(
+ "Setting FORCE_QUIT without actually quitting");
+ QuitHandler.setResponse(QResponse.FORCE_QUIT);
+ return null;
+ }, QuitHandler.defaultCancelQuit);
+ long end = System.currentTimeMillis();
+
+ Assert.assertEquals(response, QResponse.FORCE_QUIT);
+ // if the wait (min wait is 1s) wasn't long enough...
+ Assert.assertTrue(end - start > 1000,
+ "Force-Quit-whilst-saving was too short (" + (end - start)
+ + "ms)");
+ // if the wait was too long (probably waited for file to save)
+ Assert.assertTrue(end - start < 9090,
+ "Force-Quit-whilst-saving was too long (" + (end - start)
+ + "ms)");
+
+ Desktop.instance.closeAll_actionPerformed(null);
+ }
+
}