Created
May 2, 2010 14:51
-
-
Save weyert/387171 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tests | |
{ | |
import assets.MainButton_Symbol; | |
import assets.dialogs.HelpDialog_Symbol; | |
import ch.nothing.flare.display.screens.ScreenManager; | |
import ch.nothing.flare.events.ScreenEvent; | |
import ch.nothing.flare.ui.Button; | |
import ch.nothing.flare.ui.inExistingViewOf; | |
import com.newloop.roboteyes.drivers.DisplayObjectDriver; | |
import com.newloop.roboteyes.drivers.DisplayObjectDriverList; | |
import com.newloop.roboteyes.drivers.InteractiveObjectDriver; | |
import com.newloop.roboteyes.inViewOf; | |
import flash.display.DisplayObjectContainer; | |
import flash.display.MovieClip; | |
import flash.display.Sprite; | |
import flash.events.Event; | |
import flash.events.MouseEvent; | |
import org.flexunit.asserts.assertNotNull; | |
import org.flexunit.asserts.assertStrictlyEquals; | |
import org.flexunit.asserts.assertTrue; | |
import org.flexunit.async.Async; | |
import org.flexunit.runner.notification.async.WaitingListener; | |
import org.fluint.uiImpersonation.UIImpersonator; | |
import org.hamcrest.object.instanceOf; | |
import views.components.MainButton; | |
import views.dialogs.HelpDialog; | |
import views.dialogs.HighscoreDialog; | |
import views.dialogs.TimelineDialog; | |
import views.screens.ProfileScreen; | |
import views.screens.StartScreen; | |
import views.screens.TimelineScreen; | |
public class StartScreenTests | |
{ | |
private static var screenManager: ScreenManager; | |
private static var screenContainer: Sprite; | |
[Before] | |
public function setUp():void | |
{ | |
} | |
[After] | |
public function tearDown():void | |
{ | |
} | |
[BeforeClass] | |
public static function setUpBeforeClass():void | |
{ | |
screenContainer = new Sprite(); | |
UIImpersonator.addChild( screenContainer ); | |
screenManager = new ScreenManager( screenContainer ); | |
// inject the screen manager instance of the test unit | |
Application.screenManager = screenManager; | |
} | |
[AfterClass] | |
public static function tearDownAfterClass():void | |
{ | |
UIImpersonator.removeAllChildren(); | |
screenContainer = null; | |
screenManager = null; | |
} | |
/////// | |
// TESTING | |
[Test(async)] | |
public function openStartScreen(): void { | |
Async.handleEvent( this, screenManager, ScreenEvent.OPENED, handleScreenOpened, 500 ); | |
screenManager.openScreen( StartScreen, true, false ); | |
} | |
private function handleScreenOpened(event: ScreenEvent, ... args): void { | |
trace("handleScreenOpened()"); | |
assertTrue( screenManager.currentScreen is TimelineScreen ); | |
assertTrue( screenManager.currentScreen is StartScreen ); | |
} | |
[Test(async, order=4)] | |
public function clickOnStart(): void { | |
var screenView: DisplayObjectContainer = TimelineScreen(screenManager.currentScreen).view; | |
var screen: DisplayObjectContainer = TimelineScreen(screenManager.currentScreen); | |
assertNotNull( screen ); | |
assertTrue( inExistingViewOf(screenView).getA(MainButton_Symbol) is DisplayObjectDriverList ); | |
var buttonSprite: InteractiveObjectDriver = inExistingViewOf(screenView).getA(MainButton_Symbol).withProperty("name", "startButton") as InteractiveObjectDriver; | |
assertNotNull(buttonSprite); | |
// after the click on the button the screen manager should switch to the ProfileScreen, so we expect | |
// two things: OPENED/CLOSED event and the currentScreen to be ProfileScreen | |
Async.handleEvent( this, screenManager, ScreenEvent.OPENED, function(event: ScreenEvent, ... args): void { | |
assertTrue( ScreenManager(event.target).currentScreen, instanceOf( ProfileScreen ) ); | |
ScreenManager(event.target).openScreen( StartScreen ); | |
}, 1000 ); | |
buttonSprite.click(); | |
} | |
[Test(async, order=2)] | |
public function clickOnHelp(): void { | |
var screenView: DisplayObjectContainer = TimelineScreen(screenManager.currentScreen).view; | |
var screen: DisplayObjectContainer = TimelineScreen(screenManager.currentScreen); | |
assertNotNull( screen ); | |
assertTrue( screen, instanceOf(StartScreen) ); | |
assertTrue( inExistingViewOf(screenView).getA(MainButton_Symbol) is DisplayObjectDriverList ); | |
var buttonSprite: InteractiveObjectDriver = inExistingViewOf(screenView).getA(MainButton_Symbol).withProperty("name", "helpButton") as InteractiveObjectDriver; | |
assertNotNull(buttonSprite); | |
Async.handleEvent( this, buttonSprite.item, Event.SELECT, function(event: Event, ... args): void { | |
assertNotNull( inExistingViewOf(screen).getA(HelpDialog).inViewOf(HelpDialog) ); | |
}, 2000 ); | |
buttonSprite.click(); | |
} | |
[Test(async, order=3)] | |
public function clickOnHighscore(): void { | |
var screenView: DisplayObjectContainer = TimelineScreen(screenManager.currentScreen).view; | |
var screen: DisplayObjectContainer = TimelineScreen(screenManager.currentScreen); | |
assertNotNull( screen ); | |
assertTrue( screen, instanceOf(StartScreen) ); | |
assertTrue( inExistingViewOf(screenView).getA(MainButton_Symbol) is DisplayObjectDriverList ); | |
var buttonSprite: InteractiveObjectDriver = inExistingViewOf(screenView).getA(MainButton_Symbol).withProperty("name", "highscoreButton") as InteractiveObjectDriver; | |
assertNotNull(buttonSprite); | |
Async.handleEvent( this, buttonSprite.item, Event.SELECT, function(event: Event, ... args): void { | |
assertNotNull( inExistingViewOf(screen).getA(HighscoreDialog).inViewOf(HighscoreDialog) ); | |
}, 2000 ); | |
buttonSprite.click(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment