/*
 * Copyright (c) 2009-2012 jMonkeyEngine
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 * * Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * * Redistributions in binary form must reproduce the above copyright
 *   notice, this list of conditions and the following disclaimer in the
 *   documentation and/or other materials provided with the distribution.
 *
 * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
 *   may be used to endorse or promote products derived from this software
 *   without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package jme3test.app;

import com.jme3.app.LegacyApplication;
import com.jme3.system.AppSettings;

public class TestContextRestart {

    public static void main(String[] args) throws InterruptedException{
        AppSettings settings = new AppSettings(true);

        final LegacyApplication app = new LegacyApplication();
        app.setSettings(settings);
        app.start();

        Thread.sleep(3000);

        settings.setFullscreen(true);
        settings.setResolution(-1, -1);
        app.setSettings(settings);
        app.restart();

        Thread.sleep(3000);

        app.stop();
    }

}

@@ -20,17 +20,17 @@
  2009-20
-1
+2
 2 jMonke
@@ -1674,42 +1674,612 @@
 gs;%0A
-%0Apublic class TestContextRestart %7B
+import java.util.logging.Level;%0Aimport java.util.logging.Logger;%0A%0A/**%0A * Tests the functionality of LegacyApplication.restart().%0A * %3Cp%3E%0A * If successful, the test will wait for 3 seconds, change to fullscreen, wait 3%0A * more seconds, change to a 500x400 window, wait 3 more seconds, and terminate.%0A * %3Cp%3E%0A * If successful, the reshape() method will be logged twice: once for the%0A * transition to fullscreen mode and again for the transition to windowed mode.%0A */%0Apublic class TestContextRestart %7B%0A%0A    final private static Logger logger%0A            = Logger.getLogger(TestContextRestart.class.getName());
 %0A%0A  
@@ -2348,16 +2348,53 @@
 eption%7B%0A
+        logger.setLevel(Level.INFO);%0A
         
@@ -2501,16 +2501,293 @@
 cation()
+ %7B%0A            @Override%0A            public void reshape(int width, int height) %7B%0A                super.reshape(width, height);%0A                logger.log(Level.INFO, %22reshape(width=%7B0%7D height=%7B1%7D)%22,%0A                        new Object%5B%5D%7Bwidth, height%7D);%0A            %7D%0A        %7D
 ;%0A      
@@ -2857,32 +2857,109 @@
 ad.sleep(3000);%0A
+        /*%0A         * Restart with a fullscreen graphics context.%0A         */
 %0A        setting
@@ -3108,16 +3108,258 @@
 (3000);%0A
+        /*%0A         * Restart with a 500x400 windowed context.%0A         */%0A        settings.setFullscreen(false);%0A        settings.setResolution(500, 400);%0A        app.setSettings(settings);%0A        app.restart();%0A%0A        Thread.sleep(3000);
 %0A       

add fs->windowed transition, log resize() callbacks