diff --git a/libs/mockito-1.4M5.swc b/libs/mockito-1.4M5.swc deleted file mode 100644 index 0642046..0000000 Binary files a/libs/mockito-1.4M5.swc and /dev/null differ diff --git a/libs/mockolate/mockolate-0.12.4-as3.swc b/libs/mockolate/mockolate-0.12.4-as3.swc new file mode 100644 index 0000000..b2d6aeb Binary files /dev/null and b/libs/mockolate/mockolate-0.12.4-as3.swc differ diff --git a/libs/mockolate/mockolate-0.12.4-flex.swc b/libs/mockolate/mockolate-0.12.4-flex.swc new file mode 100644 index 0000000..3feb1c9 Binary files /dev/null and b/libs/mockolate/mockolate-0.12.4-flex.swc differ diff --git a/src/FlexUnitApplication-app.xml b/src/FlexUnitApplication-app.xml new file mode 100644 index 0000000..3ad4a07 --- /dev/null +++ b/src/FlexUnitApplication-app.xml @@ -0,0 +1,267 @@ + + + + + + + FlexUnitApplication + + + FlexUnitApplication + + + FlexUnitApplication + + + 0.0.0 + + + + + + + + + + + + + + + + + + [This value will be overwritten by Flash Builder in the output app.xml] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + false + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 16bit + + + + + + + + + + + + + + + + + + ]]> + + + UIDeviceFamily + + 1 + 2 + + ]]> + high + + diff --git a/src/FlexUnitApplication.mxml b/src/FlexUnitApplication.mxml new file mode 100644 index 0000000..4fde7c3 --- /dev/null +++ b/src/FlexUnitApplication.mxml @@ -0,0 +1,84 @@ + + + + + + + + + + + + diff --git a/src/FlexUnitCompilerApplication-app.xml b/src/FlexUnitCompilerApplication-app.xml new file mode 100644 index 0000000..a9e2e05 --- /dev/null +++ b/src/FlexUnitCompilerApplication-app.xml @@ -0,0 +1,267 @@ + + + + + + + FlexUnitCompilerApplication + + + FlexUnitCompilerApplication + + + FlexUnitCompilerApplication + + + 0.0.0 + + + + + + + + + + + + + + + + + + [This value will be overwritten by Flash Builder in the output app.xml] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + false + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 16bit + + + + + + + + + + + + + + + + + + ]]> + + + UIDeviceFamily + + 1 + 2 + + ]]> + high + + diff --git a/src/FlexUnitCompilerApplication.mxml b/src/FlexUnitCompilerApplication.mxml new file mode 100644 index 0000000..08a3e38 --- /dev/null +++ b/src/FlexUnitCompilerApplication.mxml @@ -0,0 +1,174 @@ + + + + + + + + + + + + diff --git a/src/Main.mxml b/src/Main.mxml index be34c86..3b5903c 100644 --- a/src/Main.mxml +++ b/src/Main.mxml @@ -46,7 +46,7 @@ import org.bigbluebutton.view.navigation.pages.presentation.PresentationConfig; import org.bigbluebutton.view.navigation.pages.profile.ProfileConfig; import org.bigbluebutton.view.navigation.pages.selectparticipant.SelectParticipantConfig; - import org.bigbluebutton.view.navigation.pages.userdetails.UserDetaisConfig; + import org.bigbluebutton.view.navigation.pages.userdetails.UserDetailsConfig; import org.bigbluebutton.view.navigation.pages.videochat.VideoChatConfig; import org.bigbluebutton.view.ui.MicButtonConfig; import org.bigbluebutton.view.ui.NavigationButtonConfig; @@ -114,7 +114,7 @@ .configure(ChatRoomsConfig) .configure(VideoChatConfig) .configure(ProfileConfig) - .configure(UserDetaisConfig) + .configure(UserDetailsConfig) .configure(ParticipantsConfig) .configure(SelectParticipantConfig) .configure(MicButtonConfig) diff --git a/src/bar-descriptor.xml b/src/bar-descriptor.xml new file mode 100644 index 0000000..20584af --- /dev/null +++ b/src/bar-descriptor.xml @@ -0,0 +1,40 @@ + + + + none + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/org/bigbluebutton/command/ConnectCommand.as b/src/org/bigbluebutton/command/ConnectCommand.as index a446b32..dd35cbe 100644 --- a/src/org/bigbluebutton/command/ConnectCommand.as +++ b/src/org/bigbluebutton/command/ConnectCommand.as @@ -65,7 +65,7 @@ package org.bigbluebutton.command } private function successConnected():void { - Log.getLogger("org.bigbluebutton").info(String(this) + ":successConnected()"); + trace("ConnectCommand::successConnected -- Success connecting to server"); userSession.mainConnection = connection; userSession.userId = connection.userId; @@ -140,7 +140,7 @@ package org.bigbluebutton.command } private function unsuccessConnected(reason:String):void { - Log.getLogger("org.bigbluebutton").info(String(this) + ":unsuccessConnected()"); + trace("ConnectCommand::unsuccessConnected() -- Failed to connect to the server!!!"); userUISession.loading = false; userUISession.unsuccessJoined.dispatch("connectionFailed"); @@ -150,14 +150,14 @@ package org.bigbluebutton.command } private function successVideoConnected():void { - Log.getLogger("org.bigbluebutton").info(String(this) + ":successVideoConnected()"); + trace("ConnectionConnamd::successVideoConnected() -- Connected to the video server"); videoConnection.successConnected.remove(successVideoConnected); videoConnection.unsuccessConnected.remove(unsuccessVideoConnected); } private function unsuccessVideoConnected(reason:String):void { - Log.getLogger("org.bigbluebutton").info(String(this) + ":unsuccessVideoConnected()"); + trace("ConnectionConnamd::unsuccessVideoConnected() -- Failed to connect to the video server"); videoConnection.unsuccessConnected.remove(unsuccessVideoConnected); videoConnection.successConnected.remove(successVideoConnected); diff --git a/src/org/bigbluebutton/command/MicrophoneMuteCommand.as b/src/org/bigbluebutton/command/MicrophoneMuteCommand.as index 89ca22e..50aabbf 100644 --- a/src/org/bigbluebutton/command/MicrophoneMuteCommand.as +++ b/src/org/bigbluebutton/command/MicrophoneMuteCommand.as @@ -19,8 +19,8 @@ package org.bigbluebutton.command override public function execute():void { - trace("MicrophoneMuteCommand.execute() - user.muted = " + user.muted); if (user != null) { + trace("MicrophoneMuteCommand.execute() - user.muted = " + user.muted); if (user.muted) { userService.unmute(user); } else { diff --git a/src/org/bigbluebutton/command/ShareMicrophoneCommand.as b/src/org/bigbluebutton/command/ShareMicrophoneCommand.as index 54d3168..552d584 100644 --- a/src/org/bigbluebutton/command/ShareMicrophoneCommand.as +++ b/src/org/bigbluebutton/command/ShareMicrophoneCommand.as @@ -43,9 +43,9 @@ package org.bigbluebutton.command voiceConnection = userSession.voiceConnection; if (!voiceConnection.connection.connected) { - voiceConnection.connect(conferenceParameters); voiceConnection.successConnected.add(mediaSuccessConnected); voiceConnection.unsuccessConnected.add(mediaUnsuccessConnected); + voiceConnection.connect(conferenceParameters); } else if (!voiceConnection.callActive) { voiceConnection.call(); @@ -63,7 +63,7 @@ package org.bigbluebutton.command } private function mediaSuccessConnected(publishName:String, playName:String, codec:String):void { - Log.getLogger("org.bigbluebutton").info(String(this) + ":mediaSuccessConnected()"); + // Log.getLogger("org.bigbluebutton").info(String(this) + ":mediaSuccessConnected()"); var manager:VoiceStreamManager = new VoiceStreamManager(); manager.play(voiceConnection.connection, playName); diff --git a/src/org/bigbluebutton/core/BaseConnection.as b/src/org/bigbluebutton/core/BaseConnection.as index 524afdf..43acd6b 100644 --- a/src/org/bigbluebutton/core/BaseConnection.as +++ b/src/org/bigbluebutton/core/BaseConnection.as @@ -31,7 +31,6 @@ package org.bigbluebutton.core protected var _onUserCommand:Boolean; public function BaseConnection() { - Log.getLogger("org.bigbluebutton").info(String(this)); } public function init(callback:IDefaultConnectionCallback):void diff --git a/src/org/bigbluebutton/core/BigBlueButtonConnection.as b/src/org/bigbluebutton/core/BigBlueButtonConnection.as index b4c20b9..4d835bf 100644 --- a/src/org/bigbluebutton/core/BigBlueButtonConnection.as +++ b/src/org/bigbluebutton/core/BigBlueButtonConnection.as @@ -27,7 +27,6 @@ package org.bigbluebutton.core private var _userId:String; public function BigBlueButtonConnection() { - Log.getLogger("org.bigbluebutton").info(String(this)); } [PostConstruct] diff --git a/src/org/bigbluebutton/core/DeskshareConnection.as b/src/org/bigbluebutton/core/DeskshareConnection.as index bcc09db..da4362b 100644 --- a/src/org/bigbluebutton/core/DeskshareConnection.as +++ b/src/org/bigbluebutton/core/DeskshareConnection.as @@ -32,7 +32,6 @@ package org.bigbluebutton.core public function DeskshareConnection() { - Log.getLogger("org.bigbluebutton").info(String(this)); } [PostConstruct] diff --git a/src/org/bigbluebutton/core/VideoConnection.as b/src/org/bigbluebutton/core/VideoConnection.as index d060863..8a698ec 100644 --- a/src/org/bigbluebutton/core/VideoConnection.as +++ b/src/org/bigbluebutton/core/VideoConnection.as @@ -37,7 +37,6 @@ package org.bigbluebutton.core public function VideoConnection() { - Log.getLogger("org.bigbluebutton").info(String(this)); } [PostConstruct] diff --git a/src/org/bigbluebutton/core/VoiceConnection.as b/src/org/bigbluebutton/core/VoiceConnection.as index 0308b6c..d2d3e8e 100644 --- a/src/org/bigbluebutton/core/VoiceConnection.as +++ b/src/org/bigbluebutton/core/VoiceConnection.as @@ -28,7 +28,6 @@ package org.bigbluebutton.core protected var _conferenceParameters:IConferenceParameters; public function VoiceConnection() { - Log.getLogger("org.bigbluebutton").info(String(this)); } [PostConstruct] diff --git a/src/org/bigbluebutton/core/ui/Popup.as b/src/org/bigbluebutton/core/ui/Popup.as deleted file mode 100644 index 44bfb06..0000000 --- a/src/org/bigbluebutton/core/ui/Popup.as +++ /dev/null @@ -1,50 +0,0 @@ -package org.bigbluebutton.core.ui -{ - import flash.display.DisplayObject; - import flash.display.DisplayObjectContainer; - - import mx.core.FlexGlobals; - import mx.core.UIComponent; - import mx.managers.PopUpManager; - - import org.bigbluebutton.core.ui.api.IPopup; - import org.bigbluebutton.core.view.IView; - - import robotlegs.bender.extensions.viewManager.api.IViewManager; - - import spark.components.Application; - - - /** - * Wrapper class for the PopUpManager that - * improves the testability of the desig.n - */ - public class Popup implements IPopup - { - [Inject] - public var viewManager: IViewManager; - - /** - * Presents the view as a popup. - */ - public function add(view: IView): void - { - viewManager.addContainer(view as DisplayObjectContainer); - - try { - PopUpManager.addPopUp(view as UIComponent, FlexGlobals.topLevelApplication as DisplayObject, true); - PopUpManager.centerPopUp(view as UIComponent); - } catch (err: Error) { } - } - - /** - * Removes view from being a popup. - */ - public function remove(view: IView): void - { - PopUpManager.removePopUp(view as UIComponent); - - viewManager.removeContainer(view as DisplayObjectContainer); - } - } -} \ No newline at end of file diff --git a/src/org/bigbluebutton/core/ui/api/IPopup.as b/src/org/bigbluebutton/core/ui/api/IPopup.as deleted file mode 100644 index df8aa9c..0000000 --- a/src/org/bigbluebutton/core/ui/api/IPopup.as +++ /dev/null @@ -1,12 +0,0 @@ -package org.bigbluebutton.core.ui.api -{ - import flash.display.DisplayObject; - - import org.bigbluebutton.core.view.IView; - - public interface IPopup - { - function add(view: IView): void; - function remove(view: IView): void; - } -} \ No newline at end of file diff --git a/src/org/bigbluebutton/model/UserList.as b/src/org/bigbluebutton/model/UserList.as index 98dce8d..8f345b2 100644 --- a/src/org/bigbluebutton/model/UserList.as +++ b/src/org/bigbluebutton/model/UserList.as @@ -256,9 +256,9 @@ package org.bigbluebutton.model return null; } - public function removePresenter(userID:String):void { + public function removePresenter():void { var u:User = getPresenter(); - if (u.presenter) { + if (u != null && u.presenter) { u.presenter = false; userChangeSignal.dispatch(u, PRESENTER); diff --git a/src/org/bigbluebutton/view/navigation/PagesNavigatorViewMediator.as b/src/org/bigbluebutton/view/navigation/PagesNavigatorViewMediator.as index bce96d0..d4ca1f9 100644 --- a/src/org/bigbluebutton/view/navigation/PagesNavigatorViewMediator.as +++ b/src/org/bigbluebutton/view/navigation/PagesNavigatorViewMediator.as @@ -92,6 +92,8 @@ package org.bigbluebutton.view.navigation override public function destroy():void { + userUISession.pageChangedSignal.remove(changePage); + super.destroy(); view.dispose(); diff --git a/src/org/bigbluebutton/view/navigation/pages/PagesENUM.as b/src/org/bigbluebutton/view/navigation/pages/PagesENUM.as index 6a18fff..04fdac0 100644 --- a/src/org/bigbluebutton/view/navigation/pages/PagesENUM.as +++ b/src/org/bigbluebutton/view/navigation/pages/PagesENUM.as @@ -10,7 +10,7 @@ package org.bigbluebutton.view.navigation.pages import org.bigbluebutton.view.navigation.pages.presentation.PresentationView; import org.bigbluebutton.view.navigation.pages.profile.ProfileView; import org.bigbluebutton.view.navigation.pages.selectparticipant.SelectParticipantView; - import org.bigbluebutton.view.navigation.pages.userdetails.UserDetaisView; + import org.bigbluebutton.view.navigation.pages.userdetails.UserDetailsView; import org.bigbluebutton.view.navigation.pages.videochat.VideoChatView; import org.bigbluebutton.view.navigation.pages.deskshare.DeskshareView; @@ -40,7 +40,7 @@ package org.bigbluebutton.view.navigation.pages dic[PRESENTATION] = PresentationView; dic[LOGIN] = LoginPageView; dic[PROFILE] = ProfileView; - dic[USER_DETAIS] = UserDetaisView; + dic[USER_DETAIS] = UserDetailsView; dic[VIDEO_CHAT] = VideoChatView; dic[CHATROOMS] = ChatRoomsView; dic[CHAT] = ChatView; diff --git a/src/org/bigbluebutton/view/navigation/pages/chat/ChatViewMediator.as b/src/org/bigbluebutton/view/navigation/pages/chat/ChatViewMediator.as index 508fa0e..b8d3c0e 100644 --- a/src/org/bigbluebutton/view/navigation/pages/chat/ChatViewMediator.as +++ b/src/org/bigbluebutton/view/navigation/pages/chat/ChatViewMediator.as @@ -47,14 +47,15 @@ package org.bigbluebutton.view.navigation.pages.chat protected var dataProvider:ArrayCollection; protected var usersSignal:ISignal; - protected var list:List; protected var publicChat:Boolean = true; protected var user:User; protected var data:Object; + internal var list:List; + override public function initialize():void { - Log.getLogger("org.bigbluebutton").info(String(this)); + trace("ChatViewMediator::initialize"); data = userUISession.currentPageDetails; diff --git a/src/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewMediator.as b/src/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewMediator.as index d959df8..921263a 100644 --- a/src/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewMediator.as +++ b/src/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewMediator.as @@ -46,18 +46,19 @@ package org.bigbluebutton.view.navigation.pages.chatrooms public var userUISession: IUserUISession; protected var dataProvider:ArrayCollection; protected var usersSignal:ISignal; - protected var list:List; protected var dicUsertoChat:Dictionary; protected var button:Object; + internal var list:List; + private var _users:ArrayCollection; private var _usersAdded:Array = new Array(); override public function initialize():void { - Log.getLogger("org.bigbluebutton").info(String(this)); + trace("ChatRoomsViewMediator::initialize"); dicUsertoChat = new Dictionary(); diff --git a/src/org/bigbluebutton/view/navigation/pages/common/MenuButtonsViewMediator.as b/src/org/bigbluebutton/view/navigation/pages/common/MenuButtonsViewMediator.as index aefb9c5..cbc042f 100644 --- a/src/org/bigbluebutton/view/navigation/pages/common/MenuButtonsViewMediator.as +++ b/src/org/bigbluebutton/view/navigation/pages/common/MenuButtonsViewMediator.as @@ -46,6 +46,8 @@ package org.bigbluebutton.view.navigation.pages.common public override function destroy():void { userSession.deskshareConnection.isStreamingSignal.remove(onDeskshareStreamChange); + + view = null; } } } \ No newline at end of file diff --git a/src/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewMediator.as b/src/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewMediator.as index bf050e0..9de26e3 100644 --- a/src/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewMediator.as +++ b/src/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewMediator.as @@ -74,6 +74,7 @@ package org.bigbluebutton.view.navigation.pages.deskshare userSession.deskshareConnection.isStreamingSignal.remove(onDeskshareStreamChange); userSession.deskshareConnection.mouseLocationChangedSignal.remove(onMouseLocationChanged); view.stopStream(); + view = null; } } } \ No newline at end of file diff --git a/src/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewMediator.as b/src/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewMediator.as index ede125c..ab63fc6 100644 --- a/src/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewMediator.as +++ b/src/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewMediator.as @@ -57,5 +57,10 @@ package org.bigbluebutton.view.navigation.pages.disconnect trace("DisconnectPageViewMediator.applicationExit - exitting the application!"); NativeApplication.nativeApplication.exit(); } + + override public function destroy():void + { + view = null; + } } } \ No newline at end of file diff --git a/src/org/bigbluebutton/view/navigation/pages/login/LoginPageViewMediator.as b/src/org/bigbluebutton/view/navigation/pages/login/LoginPageViewMediator.as index 3130c4a..0e51519 100644 --- a/src/org/bigbluebutton/view/navigation/pages/login/LoginPageViewMediator.as +++ b/src/org/bigbluebutton/view/navigation/pages/login/LoginPageViewMediator.as @@ -82,7 +82,7 @@ package org.bigbluebutton.view.navigation.pages.login if(Capabilities.isDebugger) { // test-install server no longer works with 0.9 mobile client - + //url = "bigbluebutton://test-install.blindsidenetworks.com/bigbluebutton/api/join?fullName=Air&meetingID=Demo+Meeting&password=ap&checksum=512620179852dadd6fe0665a48bcb852a3c0afac"; //url = "bigbluebutton://lab1.mconf.org/bigbluebutton/api/join?fullName=Air+client&meetingID=Test+room+4&password=prof123&checksum=5805753edd08fbf9af50f9c28bb676c7e5241349" } diff --git a/src/org/bigbluebutton/view/navigation/pages/participants/ParticipantItemRenderer.mxml b/src/org/bigbluebutton/view/navigation/pages/participants/ParticipantItemRenderer.mxml index a59e0cb..7c43f89 100644 --- a/src/org/bigbluebutton/view/navigation/pages/participants/ParticipantItemRenderer.mxml +++ b/src/org/bigbluebutton/view/navigation/pages/participants/ParticipantItemRenderer.mxml @@ -47,7 +47,7 @@ + textAlign="left" verticalAlign="middle"/> diff --git a/src/org/bigbluebutton/view/navigation/pages/participants/UserButton.as b/src/org/bigbluebutton/view/navigation/pages/participants/UserButton.as deleted file mode 100644 index eb70ab5..0000000 --- a/src/org/bigbluebutton/view/navigation/pages/participants/UserButton.as +++ /dev/null @@ -1,12 +0,0 @@ -package org.bigbluebutton.view.navigation.pages.participants -{ - import org.bigbluebutton.model.User; - - public class UserButton extends User - { - public function UserButton():void - { - - } - } -} \ No newline at end of file diff --git a/src/org/bigbluebutton/view/navigation/pages/userdetails/IUserDetaisView.as b/src/org/bigbluebutton/view/navigation/pages/userdetails/IUserDetailsView.as similarity index 87% rename from src/org/bigbluebutton/view/navigation/pages/userdetails/IUserDetaisView.as rename to src/org/bigbluebutton/view/navigation/pages/userdetails/IUserDetailsView.as index af71d0d..3231805 100644 --- a/src/org/bigbluebutton/view/navigation/pages/userdetails/IUserDetaisView.as +++ b/src/org/bigbluebutton/view/navigation/pages/userdetails/IUserDetailsView.as @@ -5,7 +5,7 @@ package org.bigbluebutton.view.navigation.pages.userdetails import spark.components.Button; - public interface IUserDetaisView extends IView + public interface IUserDetailsView extends IView { function set user(u:User):void function get user():User diff --git a/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisConfig.as b/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsConfig.as similarity index 89% rename from src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisConfig.as rename to src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsConfig.as index 9288c4c..71a7216 100644 --- a/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisConfig.as +++ b/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsConfig.as @@ -7,7 +7,7 @@ package org.bigbluebutton.view.navigation.pages.userdetails import robotlegs.bender.framework.api.IInjector; - public class UserDetaisConfig implements IConfig + public class UserDetailsConfig implements IConfig { [Inject] public var injector: IInjector; @@ -40,7 +40,7 @@ package org.bigbluebutton.view.navigation.pages.userdetails */ private function mediators(): void { - mediatorMap.map(IUserDetaisView).toMediator(UserDetaisViewMediator); + mediatorMap.map(IUserDetailsView).toMediator(UserDetailsViewMediator); } /** diff --git a/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisView.as b/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsView.as similarity index 91% rename from src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisView.as rename to src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsView.as index b50cdff..008a3cd 100644 --- a/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisView.as +++ b/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsView.as @@ -8,9 +8,9 @@ package org.bigbluebutton.view.navigation.pages.userdetails import spark.components.Button; - public class UserDetaisView extends UserDetaisViewBase implements IUserDetaisView + public class UserDetailsView extends UserDetailsViewBase implements IUserDetailsView { - public function UserDetaisView():void + public function UserDetailsView():void { } diff --git a/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisViewBase.mxml b/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewBase.mxml similarity index 100% rename from src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisViewBase.mxml rename to src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewBase.mxml diff --git a/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisViewMediator.as b/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewMediator.as similarity index 96% rename from src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisViewMediator.as rename to src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewMediator.as index 22989b2..353b9fb 100644 --- a/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetaisViewMediator.as +++ b/src/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewMediator.as @@ -16,10 +16,10 @@ package org.bigbluebutton.view.navigation.pages.userdetails import robotlegs.bender.bundles.mvcs.Mediator; - public class UserDetaisViewMediator extends Mediator + public class UserDetailsViewMediator extends Mediator { [Inject] - public var view: IUserDetaisView; + public var view: IUserDetailsView; [Inject] public var userSession: IUserSession; diff --git a/src/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewMediator.as b/src/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewMediator.as index 634b6dc..0ed02be 100644 --- a/src/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewMediator.as +++ b/src/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewMediator.as @@ -13,7 +13,6 @@ package org.bigbluebutton.view.navigation.pages.videochat import org.bigbluebutton.model.UserList; import org.bigbluebutton.model.UserSession; import org.bigbluebutton.view.navigation.pages.PagesENUM; - import org.mockito.integrations.currentMockito; import org.osmf.logging.Log; import robotlegs.bender.bundles.mvcs.Mediator; diff --git a/src/org/bigbluebutton/view/ui/SwapCameraMediator.as b/src/org/bigbluebutton/view/ui/SwapCameraMediator.as index 9fc3189..11617be 100644 --- a/src/org/bigbluebutton/view/ui/SwapCameraMediator.as +++ b/src/org/bigbluebutton/view/ui/SwapCameraMediator.as @@ -63,5 +63,13 @@ package org.bigbluebutton.view.ui view.setVisibility(user.hasStream); } } + + public override function destroy():void + { + (view as SwapCameraButton).removeEventListener(MouseEvent.CLICK, mouseClickHandler); + userSession.userList.userChangeSignal.remove(userChangeHandler); + view.dispose(); + view = null; + } } } \ No newline at end of file diff --git a/tests/org/bigbluebutton/AppConfigTest.as b/tests/org/bigbluebutton/AppConfigTest.as new file mode 100644 index 0000000..1cf1753 --- /dev/null +++ b/tests/org/bigbluebutton/AppConfigTest.as @@ -0,0 +1,71 @@ +package org.bigbluebutton +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.command.MicrophoneMuteSignal; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.commandCenter.dsl.ICommandMapper; + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class AppConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:AppConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, ISignalCommandMap), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new AppConfig(); + + instance.injector = this.injector; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfAppConfig():void + { + assertTrue("instance is AppConfig", instance is AppConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/AppConfigurationTests.as b/tests/org/bigbluebutton/AppConfigurationTests.as deleted file mode 100644 index 805633f..0000000 --- a/tests/org/bigbluebutton/AppConfigurationTests.as +++ /dev/null @@ -1,19 +0,0 @@ -package org.bigbluebutton -{ - import org.hamcrest.assertThat; - import org.hamcrest.object.notNullValue; - - import robotlegs.bender.framework.api.IConfig; - - public class AppConfigurationTests - { - /** - * Tests that the AppConfiguration implements IConfig. - */ - [Test] - public function implements_expectedInterface(): void - { - assertThat(new AppConfig() as IConfig, notNullValue()); - } - } -} \ No newline at end of file diff --git a/tests/org/bigbluebutton/AppTestSuite.as b/tests/org/bigbluebutton/AppTestSuite.as deleted file mode 100644 index 93efb5c..0000000 --- a/tests/org/bigbluebutton/AppTestSuite.as +++ /dev/null @@ -1,9 +0,0 @@ -package org.bigbluebutton -{ - [Suite] - [RunWith("org.flexunit.runners.Suite")] - public class AppTestSuite - { - - } -} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/CameraQualityCommandTest.as b/tests/org/bigbluebutton/command/CameraQualityCommandTest.as new file mode 100644 index 0000000..dbc726d --- /dev/null +++ b/tests/org/bigbluebutton/command/CameraQualityCommandTest.as @@ -0,0 +1,77 @@ +package org.bigbluebutton.command +{ + import flash.events.Event; + + import mockolate.nice; + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.core.VideoConnection; + import org.bigbluebutton.model.UserSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.bundles.mvcs.Command; + + public class CameraQualityCommandTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var userSession:UserSession; + + protected var instance:CameraQualityCommand; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(VideoConnection), Event.COMPLETE); + instance = new CameraQualityCommand(); + instance.userSession = userSession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfCameraQualityCommand():void + { + assertTrue("instance is CameraQualityCommand", instance is CameraQualityCommand); + } + + [Test] + public function instantiated_implementsRobotlegsCommand():void + { + assertTrue("instance is robotlegs Command", instance is Command); + } + + [Test] + public function executed_callsSelectCameraQualityMethod():void + { + var videoConnection:VideoConnection = nice(VideoConnection); + stub(userSession).getter("videoConnection").returns(videoConnection); + instance.execute(); + assertThat(instance.userSession.videoConnection, received().method('selectCameraQuality')); + } + + [Test] + public function executed_callsSelectCameraQualityMethodWithCorrectArgs():void + { + var videoConnection:VideoConnection = nice(VideoConnection); + instance.cameraQualitySelected = 2; + instance.userSession = userSession; + stub(userSession).getter("videoConnection").returns(videoConnection); + instance.execute(); + assertThat(instance.userSession.videoConnection, received().method('selectCameraQuality').arg(2)); + } + + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/CameraQualitySignalTest.as b/tests/org/bigbluebutton/command/CameraQualitySignalTest.as new file mode 100644 index 0000000..5d12954 --- /dev/null +++ b/tests/org/bigbluebutton/command/CameraQualitySignalTest.as @@ -0,0 +1,36 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + import robotlegs.bender.bundles.mvcs.Command; + + public class CameraQualitySignalTest + { + protected var instance:CameraQualitySignal; + + [Before] + public function setUp():void + { + instance = new CameraQualitySignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfCameraQualitySignal():void + { + assertTrue("instance is CameraQualitySignal", instance is CameraQualitySignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/ConnectCommandTest.as b/tests/org/bigbluebutton/command/ConnectCommandTest.as new file mode 100644 index 0000000..2649c7b --- /dev/null +++ b/tests/org/bigbluebutton/command/ConnectCommandTest.as @@ -0,0 +1,254 @@ +package org.bigbluebutton.command +{ + import flash.events.Event; + + import mockolate.arg; + import mockolate.expect; + import mockolate.expectArg; + import mockolate.mock; + import mockolate.nice; + import mockolate.prepare; + import mockolate.received; + import mockolate.record; + import mockolate.runner.MockolateRule; + import mockolate.strict; + import mockolate.stub; + + import org.bigbluebutton.core.IBigBlueButtonConnection; + import org.bigbluebutton.core.IChatMessageService; + import org.bigbluebutton.core.IDeskshareConnection; + import org.bigbluebutton.core.IPresentationService; + import org.bigbluebutton.core.IUsersService; + import org.bigbluebutton.core.IVideoConnection; + import org.bigbluebutton.core.IVoiceConnection; + import org.bigbluebutton.model.Config; + import org.bigbluebutton.model.IConferenceParameters; + import org.bigbluebutton.model.IUserSession; + import org.bigbluebutton.model.IUserUISession; + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.view.navigation.pages.PagesENUM; + import org.flexunit.asserts.assertTrue; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.hamcrest.core.anything; + import org.hamcrest.object.equalTo; + import org.hamcrest.object.instanceOf; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Command; + + public class ConnectCommandTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var mockConnection:IBigBlueButtonConnection; + + [Mock] + public var mockConferenceParameters:IConferenceParameters; + + [Mock] + public var mockUserSession:IUserSession; + + [Mock] + public var mockUsersService:IUsersService; + + [Mock] + public var mockUserUISession:IUserUISession; + + [Mock] + public var mockUserList:UserList; + + [Mock] + public var mockChatService:IChatMessageService; + + [Mock] + public var mockPresentationService:IPresentationService; + + [Mock] + public var mockVideoConnection:IVideoConnection; + + [Mock] + public var mockVoiceConnection:IVoiceConnection; + + [Mock] + public var mockDeskshareConnection:IDeskshareConnection; + + [Mock] + public var fakeUIUnsuccessConnectedSignal:Signal; + + [Mock] + public var mockConfig:Config; + + /* Returned by the mockConfig 'getConfigFor', to imitate the real config XML */ + public var fakeXML:XML = + ; + + /* The fake signals that need to be dispatched. There may be a better way to 'fake' signals, + * but I don't know how to mock them with Mockolate (I need them to dispatch real signals). */ + public var mockSuccessConnected:Signal = new Signal(); + public var mockUnsuccessConnected:Signal = new Signal(); + + public var mockSuccessJoiningMeetingSignal:Signal = new Signal(); + public var mockUnsuccessJoiningMeetingSignal:Signal = new Signal; + + public var mockVideoConnectionSuccessConnected:Signal = new Signal(); + public var mockVideoConnectionUnsuccessConnected:Signal = new Signal(); + + public var mockUserListAllUsersAddedSignal:Signal = new Signal(); + + protected var instance:ConnectCommand; + + [Before (async)] + public function setUp():void + { + instance = new ConnectCommand(); + + instance.connection = mockConnection; + instance.userSession = mockUserSession; + instance.userUISession = mockUserUISession; + instance.conferenceParameters = mockConferenceParameters; + instance.usersService = mockUsersService; + instance.chatService = mockChatService; + instance.presentationService = mockPresentationService; + instance.videoConnection = mockVideoConnection; + instance.voiceConnection = mockVoiceConnection; + instance.deskshareConnection = mockDeskshareConnection; + + stub(mockUserSession).getter("successJoiningMeetingSignal").returns(mockSuccessJoiningMeetingSignal); + stub(mockUserSession).getter("unsuccessJoiningMeetingSignal").returns(mockUnsuccessJoiningMeetingSignal); + stub(mockUserSession).getter("config").returns(mockConfig); + stub(mockUserSession).getter("userList").returns(mockUserList); + + stub(mockUserList).getter("allUsersAddedSignal").returns(mockUserListAllUsersAddedSignal); + + stub(mockConnection).getter("successConnected").returns(mockSuccessConnected); + stub(mockConnection).getter("unsuccessConnected").returns(mockUnsuccessConnected); + + stub(mockVideoConnection).getter("successConnected").returns(mockVideoConnectionSuccessConnected); + stub(mockVideoConnection).getter("unsuccessConnected").returns(mockVideoConnectionUnsuccessConnected); + + stub(mockConferenceParameters).getter("room").returns("ROOM"); + + stub(mockConfig).method("getConfigFor").args("VideoConfModule").returns(new XML(fakeXML.video.toXMLString())); + stub(mockConfig).method("getConfigFor").args("PhoneModule").returns(new XML(fakeXML.voice.toXMLString())); + stub(mockConfig).method("getConfigFor").args("DeskShareModule").returns(new XML(fakeXML.deskshare.toXMLString())); + } + + [Test] + public function execute_connect_connectInvokedOnConnectionWithConference():void + { + expect(mockConnection.connect(mockConferenceParameters)); + instance.execute(); + } + + [Test] + public function execute_successConnected_userSessionAndServiceInitialized():void + { + stub(mockConnection).method("connect").args(mockConferenceParameters).calls(mockSuccessConnected.dispatch); + expect(mockUserSession.mainConnection = mockConnection); + expect(mockUserSession.userId = mockConnection.userId); + expect(mockUsersService.setupMessageSenderReceiver()); + expect(mockUsersService.sendJoinMeetingMessage()); + instance.execute(); + } + + [Test] + public function execute_successConnected_connectedSignalsRemoved():void + { + stub(mockConnection).method("connect").args(mockConferenceParameters).calls(mockSuccessConnected.dispatch); + expect(mockSuccessConnected.remove); + expect(mockUnsuccessConnected.remove); + instance.execute(); + } + + [Test] + public function execute_successJoined_MessageSendersAndReceiversSetup():void + { + stub(mockConnection).method("connect").args(mockConferenceParameters).calls(mockSuccessConnected.dispatch); + stub(mockUsersService).method("sendJoinMeetingMessage").calls(mockSuccessJoiningMeetingSignal.dispatch); + expect(mockChatService.setupMessageSenderReceiver); + expect(mockPresentationService.setupMessageSenderReceiver); + instance.execute(); + } + + [Test] + public function execute_successJoined_connectionURIsSet():void + { + stub(mockConnection).method("connect").args(mockConferenceParameters).calls(mockSuccessConnected.dispatch); + stub(mockUsersService).method("sendJoinMeetingMessage").calls(mockSuccessJoiningMeetingSignal.dispatch); + + expect(mockVideoConnection.uri = arg("VIDEO_MODULE_URI" + "/" + "ROOM")); + expect(mockVoiceConnection.uri = arg("PHONE_MODULE_URI")); + expect(mockDeskshareConnection.applicationURI = arg("DESKSHARE_MODULE_URI")); + expect(mockDeskshareConnection.room = arg("ROOM")); + + instance.execute(); + } + + [Test] + public function execute_successJoined_connectInvokedOnVideoAndDeskshareConnection():void + { + stub(mockConnection).method("connect").args(mockConferenceParameters).calls(mockSuccessConnected.dispatch); + stub(mockUsersService).method("sendJoinMeetingMessage").calls(mockSuccessJoiningMeetingSignal.dispatch); + expect(mockVideoConnection.connect()); + expect(mockDeskshareConnection.connect()); + instance.execute(); + } + + [Test] + public function execute_successJoined_connectionsAssignedToUserSession():void + { + stub(mockConnection).method("connect").args(mockConferenceParameters).calls(mockSuccessConnected.dispatch); + stub(mockUsersService).method("sendJoinMeetingMessage").calls(mockSuccessJoiningMeetingSignal.dispatch); + expect(mockUserSession.videoConnection = arg(mockVideoConnection)); + expect(mockUserSession.voiceConnection = arg(mockVoiceConnection)); + expect(mockUserSession.deskshareConnection = arg(mockDeskshareConnection)); + instance.execute(); + } + + [Test] + public function execute_successJoined_queryServerForUserChatPresentationInfo():void + { + stub(mockConnection).method("connect").args(mockConferenceParameters).calls(mockSuccessConnected.dispatch); + stub(mockUsersService).method("sendJoinMeetingMessage").calls(mockSuccessJoiningMeetingSignal.dispatch); + expect(mockChatService.getPublicChatMessages); + expect(mockPresentationService.getPresentationInfo); + expect(mockUsersService.queryForParticipants); + expect(mockUsersService.queryForRecordingStatus); + instance.execute(); + } + + [Test] + public function execute_allUsersSuccessfullyAdded_userUISessionStarted():void + { + stub(mockConnection).method("connect").args(mockConferenceParameters).calls(mockSuccessConnected.dispatch); + stub(mockUsersService).method("sendJoinMeetingMessage").calls(mockSuccessJoiningMeetingSignal.dispatch); + stub(mockUsersService).method("queryForParticipants").calls(mockUserListAllUsersAddedSignal.dispatch); + expect(mockUserUISession.loading = arg(false)); + expect(mockUserUISession.pushPage(PagesENUM.PARTICIPANTS)); + instance.execute(); + } + + [Test] + public function execute_unsuccessConnecting_userUISessionUnsuccessDispatched():void + { + stub(mockConnection).method("connect").args(mockConferenceParameters).calls(mockUnsuccessConnected.dispatch, ["REASON"]); + expect(mockUserUISession.loading = arg(false)); + expect(mockUserUISession.unsuccessJoined).returns(fakeUIUnsuccessConnectedSignal); + expect(fakeUIUnsuccessConnectedSignal.dispatch("connectionFailed")); + instance.execute(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/ConnectSignalTest.as b/tests/org/bigbluebutton/command/ConnectSignalTest.as new file mode 100644 index 0000000..9917e8f --- /dev/null +++ b/tests/org/bigbluebutton/command/ConnectSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class ConnectSignalTest + { + protected var instance:ConnectSignal; + + [Before] + public function setUp():void + { + instance = new ConnectSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfConnectSignal():void + { + assertTrue("instance is ConnectSignal", instance is ConnectSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/DisconnectUserCommandTest.as b/tests/org/bigbluebutton/command/DisconnectUserCommandTest.as new file mode 100644 index 0000000..34b889f --- /dev/null +++ b/tests/org/bigbluebutton/command/DisconnectUserCommandTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + + import robotlegs.bender.bundles.mvcs.Command; + + public class DisconnectUserCommandTest + { + protected var instance:DisconnectUserCommand; + + [Before] + public function setUp():void + { + instance = new DisconnectUserCommand(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDisconnectUserCommand():void + { + assertTrue("instance is DisconnectUserCommand", instance is DisconnectUserCommand); + } + + [Test] + public function instantiated_implementsRobotlegsCommand():void + { + assertTrue("instance is robotlegs Command", instance is Command); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/DisconnectUserSignalTest.as b/tests/org/bigbluebutton/command/DisconnectUserSignalTest.as new file mode 100644 index 0000000..ecb9f29 --- /dev/null +++ b/tests/org/bigbluebutton/command/DisconnectUserSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class DisconnectUserSignalTest + { + protected var instance:DisconnectUserSignal; + + [Before] + public function setUp():void + { + instance = new DisconnectUserSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDisconnectUserSignal():void + { + assertTrue("instance is DisconnectUserSignal", instance is DisconnectUserSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/JoinMeetingCommandTest.as b/tests/org/bigbluebutton/command/JoinMeetingCommandTest.as new file mode 100644 index 0000000..d32a811 --- /dev/null +++ b/tests/org/bigbluebutton/command/JoinMeetingCommandTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + + import robotlegs.bender.bundles.mvcs.Command; + + public class JoinMeetingCommandTest + { + protected var instance:JoinMeetingCommand; + + [Before] + public function setUp():void + { + instance = new JoinMeetingCommand(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfJoinMeetingCommand():void + { + assertTrue("instance is JoinMeetingCommand", instance is JoinMeetingCommand); + } + + [Test] + public function instantiated_implementsRobotlegsCommand():void + { + assertTrue("instance is robotlegs Command", instance is Command); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/JoinMeetingSignalTest.as b/tests/org/bigbluebutton/command/JoinMeetingSignalTest.as new file mode 100644 index 0000000..d749949 --- /dev/null +++ b/tests/org/bigbluebutton/command/JoinMeetingSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class JoinMeetingSignalTest + { + protected var instance:JoinMeetingSignal; + + [Before] + public function setUp():void + { + instance = new JoinMeetingSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfJoinMeetingSignal():void + { + assertTrue("instance is JoinMeetingSignal", instance is JoinMeetingSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/LoadSlideCommandTest.as b/tests/org/bigbluebutton/command/LoadSlideCommandTest.as new file mode 100644 index 0000000..fd7a1e3 --- /dev/null +++ b/tests/org/bigbluebutton/command/LoadSlideCommandTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + + import robotlegs.bender.bundles.mvcs.Command; + + public class LoadSlideCommandTest + { + protected var instance:LoadSlideCommand; + + [Before] + public function setUp():void + { + instance = new LoadSlideCommand(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoadSlideCommand():void + { + assertTrue("instance is LoadSlideCommand", instance is LoadSlideCommand); + } + + [Test] + public function instantiated_implementsRobotlegsCommand():void + { + assertTrue("instance is robotlegs Command", instance is Command); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/LoadSlideSignalTest.as b/tests/org/bigbluebutton/command/LoadSlideSignalTest.as new file mode 100644 index 0000000..31413cb --- /dev/null +++ b/tests/org/bigbluebutton/command/LoadSlideSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class LoadSlideSignalTest + { + protected var instance:LoadSlideSignal; + + [Before] + public function setUp():void + { + instance = new LoadSlideSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoadSlideSignal():void + { + assertTrue("instance is LoadSlideSignal", instance is LoadSlideSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/MicrophoneEnableCommandTests.as b/tests/org/bigbluebutton/command/MicrophoneEnableCommandTests.as deleted file mode 100644 index cd2a680..0000000 --- a/tests/org/bigbluebutton/command/MicrophoneEnableCommandTests.as +++ /dev/null @@ -1,132 +0,0 @@ -package org.bigbluebutton.command -{ - import flashx.textLayout.debug.assert; - - import org.flexunit.assertThat; - import org.flexunit.asserts.assertFalse; - import org.flexunit.asserts.assertTrue; - import org.hamcrest.object.equalTo; - import org.bigbluebutton.model.IUserSettings; - import org.bigbluebutton.view.ui.IMicButton; - import org.bigbluebutton.view.ui.MicButton; - import org.mockito.integrations.flexunit4.MockitoRule; - import org.mockito.integrations.havingPropertyOf; - import org.mockito.integrations.mock; - import org.mockito.integrations.times; - import org.mockito.integrations.verify; - - [Mock(type="org.bigbluebutton.model.IUserSettings")] - public class MicrophoneEnableCommandTests - { - [Rule] - public var mockitoRule: MockitoRule = new MockitoRule(); - - /** - * Tests that the command microphoneEnabledOff really change/mantain the variable "selected" in the button false - */ - [Test] - public function execute_microphoneEnabledOffAndCheckSelectedProperty(): void - { - var micButton:MicButton = new MicButton(); - - var command: MicrophoneOnCommand = createCommand(); - command.enabled = false; - command.execute(); - - assertFalse(micButton.selected); - } - - /** - * Tests that the command microphoneEnabledOff really change the visual in the button to desabled - */ - [Test] - public function execute_microphoneEnabledOffAndCheckSelectedState(): void - { - var micButton:MicButton = new MicButton(); - - var command: MicrophoneOnCommand = createCommand(); - command.enabled = false; - command.execute(); - - assertThat(micButton.currentState, equalTo("unselected")); - } - - /** - * Tests that the command microphoneEnabledOn really change the variable "selected" in the button - */ - [Test] - public function execute_microphoneEnabledOnAndCheckSelectedProperty(): void - { - var micButton:MicButton = new MicButton(); - - var command: MicrophoneOnCommand = createCommand(); - command.enabled = true; - command.execute(); - - assertTrue(micButton.selected); - } - - /** - * Tests that the command microphoneEnabledOn really change the visual in the button - */ - [Test] - public function execute_microphoneEnabledOnAndCheckSelectedState(): void - { - var micButton:MicButton = new MicButton(); - - var command: MicrophoneOnCommand = createCommand(); - command.enabled = true; - command.execute(); - - assertThat(micButton.currentState, equalTo("selected")); - } - - /** - * Tests that the command to enable after the disable works - */ - [Test] - public function execute_microphoneEnabledOnThenOffAndCheckIfOff(): void - { - var micButton:MicButton = new MicButton(); - - var command: MicrophoneOnCommand = createCommand(); - command.enabled = true; - command.execute(); - - var command1: MicrophoneOnCommand = createCommand(); - command1.enabled = false; - command1.execute(); - - assertFalse(micButton.selected); - } - - /** - * Tests that the command to enable after the disable works - */ - [Test] - public function execute_microphoneEnabledOffThenOnAndCheckIfOn(): void - { - var micButton:MicButton = new MicButton(); - - var command: MicrophoneOnCommand = createCommand(); - command.enabled = false; - command.execute(); - - var command1: MicrophoneOnCommand = createCommand(); - command1.enabled = true; - command1.execute(); - - assertTrue(micButton.selected); - } - - /** - * Creates the test subject with its dependencies. - */ - private function createCommand(): MicrophoneOnCommand - { - var command: MicrophoneOnCommand = new MicrophoneOnCommand(); - command.userSettings = mock(IUserSettings); - return command; - } - } -} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/MicrophoneEnableSignalTests.as b/tests/org/bigbluebutton/command/MicrophoneEnableSignalTests.as deleted file mode 100644 index 6903ecb..0000000 --- a/tests/org/bigbluebutton/command/MicrophoneEnableSignalTests.as +++ /dev/null @@ -1,17 +0,0 @@ -package org.bigbluebutton.command -{ - import org.hamcrest.assertThat; - import org.hamcrest.object.equalTo; - - public class MicrophoneEnableSignalTests - { - /** - * TurnOffMicSignal should not have an argument. - */ - [Test] - public function default_ShouldHaveStringAsArg(): void - { - assertThat(new MicrophoneOnSignal().valueClasses.length, equalTo(2)); - } - } -} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/MicrophoneMuteCommandTest.as b/tests/org/bigbluebutton/command/MicrophoneMuteCommandTest.as new file mode 100644 index 0000000..849d55c --- /dev/null +++ b/tests/org/bigbluebutton/command/MicrophoneMuteCommandTest.as @@ -0,0 +1,93 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + + import robotlegs.bender.bundles.mvcs.Command; + + import org.bigbluebutton.core.IUsersService; + import org.bigbluebutton.model.IUserSession; + import org.bigbluebutton.model.User; + + import mockolate.runner.MockolateRule; + import mockolate.mock; + import mockolate.nice; + import mockolate.stub; + import mockolate.expect; + import mockolate.expecting; + import mockolate.received; + + import org.hamcrest.assertThat; + + public class MicrophoneMuteCommandTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var user:User; + + [Mock] + public var userSession:IUserSession; + + [Mock] + public var userService:IUsersService; + + protected var instance:MicrophoneMuteCommand; + + [Before] + public function setUp():void + { + instance = new MicrophoneMuteCommand(); + instance.user = user; + instance.userSession = userSession; + instance.userService = userService; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMicrophoneMuteCommand():void + { + assertTrue("instance is MicrophoneMuteCommand", instance is MicrophoneMuteCommand); + } + + [Test] + public function instantiated_implementsRobotlegsCommand():void + { + assertTrue("instance is robotlegs Command", instance is Command); + } + + [Test] + public function execute_whenUserIsNull_userServiceMethodsNotInvoked():void + { + /* Since we are mocking user, then setting it to null here, should it be automatically mocked at all? + * (with the "[Mock]" meta tag? Or instantiated and mocked manually for each test, with the + * "var user:user = nice(User);" syntax? I don't know the 'standard' way... - Adam */ + instance.user = null; + mock(userService).method("mute").never(); + instance.execute(); + } + + [Test] + public function execute_whenUserIsMuted_userServiceUnmuteMethodIsInvoked():void + { + stub(user).getter("muted").returns(true); + mock(userService).method("unmute").args(user); + instance.execute(); + assertThat(instance.userService, received().method("unmute")); + } + + [Test] + public function execute_whenUserIsNotMuted_userServiceMuteMethodIsInvoked():void + { + stub(user).getter("muted").returns(false); + mock(userService).method("mute").args(user); + instance.execute(); + assertThat(instance.userService, received().method("mute")); + } + } +} diff --git a/tests/org/bigbluebutton/command/MicrophoneMuteSignalTest.as b/tests/org/bigbluebutton/command/MicrophoneMuteSignalTest.as new file mode 100644 index 0000000..6666241 --- /dev/null +++ b/tests/org/bigbluebutton/command/MicrophoneMuteSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class MicrophoneMuteSignalTest + { + protected var instance:MicrophoneMuteSignal; + + [Before] + public function setUp():void + { + instance = new MicrophoneMuteSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMicrophoneMuteSignal():void + { + assertTrue("instance is MicrophoneMuteSignal", instance is MicrophoneMuteSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/NavigateToCommandTest.as b/tests/org/bigbluebutton/command/NavigateToCommandTest.as new file mode 100644 index 0000000..777f30a --- /dev/null +++ b/tests/org/bigbluebutton/command/NavigateToCommandTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + + import robotlegs.bender.bundles.mvcs.Command; + + public class NavigateToCommandTest + { + protected var instance:NavigateToCommand; + + [Before] + public function setUp():void + { + instance = new NavigateToCommand(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfNavigateToCommand():void + { + assertTrue("instance is NavigateToCommand", instance is NavigateToCommand); + } + + [Test] + public function instantiated_implementsRobotlegsCommand():void + { + assertTrue("instance is robotlegs Command", instance is Command); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/NavigateToSignalTest.as b/tests/org/bigbluebutton/command/NavigateToSignalTest.as new file mode 100644 index 0000000..753ee33 --- /dev/null +++ b/tests/org/bigbluebutton/command/NavigateToSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class NavigateToSignalTest + { + protected var instance:NavigateToSignal; + + [Before] + public function setUp():void + { + instance = new NavigateToSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfNavigateToSignal():void + { + assertTrue("instance is NavigateToSignal", instance is NavigateToSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/PlayAudioStreamSignalTest.as b/tests/org/bigbluebutton/command/PlayAudioStreamSignalTest.as new file mode 100644 index 0000000..77630da --- /dev/null +++ b/tests/org/bigbluebutton/command/PlayAudioStreamSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class PlayAudioStreamSignalTest + { + protected var instance:PlayAudioStreamSignal; + + [Before] + public function setUp():void + { + instance = new PlayAudioStreamSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPlayAudioStreamSignal():void + { + assertTrue("instance is PlayAudioStreamSignal", instance is PlayAudioStreamSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/PublicChatMessageSignalTest.as b/tests/org/bigbluebutton/command/PublicChatMessageSignalTest.as new file mode 100644 index 0000000..eb7fcf7 --- /dev/null +++ b/tests/org/bigbluebutton/command/PublicChatMessageSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class PublicChatMessageSignalTest + { + protected var instance:PublicChatMessage; + + [Before] + public function setUp():void + { + instance = new PublicChatMessage(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPublicChatMessage():void + { + assertTrue("instance is PublicChatMessage", instance is PublicChatMessage); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/PublishAudioStreamSignalTest.as b/tests/org/bigbluebutton/command/PublishAudioStreamSignalTest.as new file mode 100644 index 0000000..0b98370 --- /dev/null +++ b/tests/org/bigbluebutton/command/PublishAudioStreamSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class PublishAudioStreamSignalTest + { + protected var instance:PublishAudioStreamSignal; + + [Before] + public function setUp():void + { + instance = new PublishAudioStreamSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPublishAudioStreamSignal():void + { + assertTrue("instance is PublishAudioStreamSignal", instance is PublishAudioStreamSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/RaiseHandCommandTest.as b/tests/org/bigbluebutton/command/RaiseHandCommandTest.as new file mode 100644 index 0000000..405772b --- /dev/null +++ b/tests/org/bigbluebutton/command/RaiseHandCommandTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + + import robotlegs.bender.bundles.mvcs.Command; + + public class RaiseHandCommandTest + { + protected var instance:RaiseHandCommand; + + [Before] + public function setUp():void + { + instance = new RaiseHandCommand(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfRaiseHandCommand():void + { + assertTrue("instance is RaiseHandCommand", instance is RaiseHandCommand); + } + + [Test] + public function instantiated_implementsRobotlegsCommand():void + { + assertTrue("instance is robotlegs Command", instance is Command); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/RaiseHandSignalTest.as b/tests/org/bigbluebutton/command/RaiseHandSignalTest.as new file mode 100644 index 0000000..763fb29 --- /dev/null +++ b/tests/org/bigbluebutton/command/RaiseHandSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class RaiseHandSignalTest + { + protected var instance:RaiseHandSignal; + + [Before] + public function setUp():void + { + instance = new RaiseHandSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfRaiseHandSignal():void + { + assertTrue("instance is RaiseHandSignal", instance is RaiseHandSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/RemovePageCommandTest.as b/tests/org/bigbluebutton/command/RemovePageCommandTest.as new file mode 100644 index 0000000..e83e524 --- /dev/null +++ b/tests/org/bigbluebutton/command/RemovePageCommandTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + + import robotlegs.bender.bundles.mvcs.Command; + + public class RemovePageCommandTest + { + protected var instance:RemovePageCommand; + + [Before] + public function setUp():void + { + instance = new RemovePageCommand(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfRemovePageCommand():void + { + assertTrue("instance is RemovePageCommand", instance is RemovePageCommand); + } + + [Test] + public function instantiated_implementsRobotlegsCommand():void + { + assertTrue("instance is robotlegs Command", instance is Command); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/ShareCameraCommandTest.as b/tests/org/bigbluebutton/command/ShareCameraCommandTest.as new file mode 100644 index 0000000..e46c1a9 --- /dev/null +++ b/tests/org/bigbluebutton/command/ShareCameraCommandTest.as @@ -0,0 +1,114 @@ +package org.bigbluebutton.command +{ + import flash.events.Event; + + import mockolate.mock; + import mockolate.nice; + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.core.IUsersService; + import org.bigbluebutton.core.VideoConnection; + import org.bigbluebutton.model.IUserSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.hamcrest.object.equalTo; + + import robotlegs.bender.bundles.mvcs.Command; + + public class ShareCameraCommandTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var mockUserSession:IUserSession; + + [Mock] + public var mockUserService:IUsersService; + + protected var instance:ShareCameraCommand; + + [Before (async)] + public function setUp():void + { + instance = new ShareCameraCommand(); + instance.userSession = mockUserSession; + instance.usersService = mockUserService; + Async.proceedOnEvent(this, prepare(VideoConnection), Event.COMPLETE); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function execute_enabledIsFalse_removeStreamInvokedOnUserService():void + { + instance.enabled = false; + var mockVideoConnection:VideoConnection = nice(VideoConnection); + mock(mockUserSession).getter("videoConnection").returns(mockVideoConnection); + instance.execute(); + assertThat(instance.usersService, received().method("removeStream")); + } + + [Test] + public function execute_enabledIsFalse_stopPublishingInvokedOnVideoConnection():void + { + instance.enabled = false; + var mockVideoConnection:VideoConnection = nice(VideoConnection); + stub(mockUserSession).getter("videoConnection").returns(mockVideoConnection); + instance.execute(); + assertThat(instance.userSession.videoConnection, received().method("stopPublishing")); + } + + [Test] + public function execute_enabledIsTrue_cameraPositionIsSetForVideoConnection():void + { + instance.enabled = true; + instance.position = "some camera position"; + var mockVideoConnection:VideoConnection = nice(VideoConnection); + stub(mockUserSession).getter("videoConnection").returns(mockVideoConnection); + mock(mockVideoConnection).setter("cameraPosition").arg("some camera position").atLeast(1); + instance.execute(); + } + + /* Mockolate does not allow the mocking and stubbing of static methods. Camera objects are got via + * the 'Camera.getCamera()' method, which is static. So, I am not sure how to properly have + * this return null/'my-fake-camera' for the following three tests... - Adam */ + [Test] + public function execute_cameraIsNull_startPublishingIsNotInvoked():void + { + + } + + [Test] + public function execute_enabledIsTrue_addStreamInvokedOnUserService():void + { + + } + + [Test] + public function execute_enabledIsTrue_startPublishingInvokedOnVideoConnection():void + { + + } + + [Test] + public function instantiated_isInstanceOfShareCameraCommand():void + { + assertTrue("instance is ShareCameraCommand", instance is ShareCameraCommand); + } + + [Test] + public function instantiated_implementsRobotlegsCommand():void + { + assertTrue("instance is robotlegs Command", instance is Command); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/ShareCameraSignalTest.as b/tests/org/bigbluebutton/command/ShareCameraSignalTest.as new file mode 100644 index 0000000..985eebf --- /dev/null +++ b/tests/org/bigbluebutton/command/ShareCameraSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class ShareCameraSignalTest + { + protected var instance:ShareCameraSignal; + + [Before] + public function setUp():void + { + instance = new ShareCameraSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfShareCameraSignal():void + { + assertTrue("instance is ShareCameraSignal", instance is ShareCameraSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/ShareMicrophoneCommandTest.as b/tests/org/bigbluebutton/command/ShareMicrophoneCommandTest.as new file mode 100644 index 0000000..efb1247 --- /dev/null +++ b/tests/org/bigbluebutton/command/ShareMicrophoneCommandTest.as @@ -0,0 +1,133 @@ +package org.bigbluebutton.command +{ + import flash.net.NetConnection; + + import mockolate.*; + import mockolate.runner.MockolateRule; + + import org.bigbluebutton.core.VoiceConnection; + import org.bigbluebutton.core.VoiceStreamManager; + import org.bigbluebutton.model.IConferenceParameters; + import org.bigbluebutton.model.IUserSession; + import org.flexunit.asserts.assertTrue; + import org.hamcrest.assertThat; + import org.osflash.signals.ISignal; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Command; + + public class ShareMicrophoneCommandTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var mockUserSession:IUserSession; + + [Mock] + public var mockConferenceParameters:IConferenceParameters; + + [Mock] + public var mockVoiceStreamManager:VoiceStreamManager; + + [Mock] + public var mockVoiceConnection:VoiceConnection; + + [Mock] + public var mockNetConnection:NetConnection; + +// [Mock] + public var mockSuccessConnectedSignal:Signal = new Signal(); + +// [Mock] + public var mockUnuccessConnectedSignal:Signal = new Signal(); + + protected var instance:ShareMicrophoneCommand; + + [Before] + public function setUp():void + { + instance = new ShareMicrophoneCommand(); + instance.userSession = mockUserSession; + instance.conferenceParameters = mockConferenceParameters; + stub(mockUserSession).getter("voiceConnection").returns(mockVoiceConnection); + stub(mockVoiceConnection).getter("connection").returns(mockNetConnection); + stub(mockVoiceConnection).getter("successConnected").returns(mockSuccessConnectedSignal); + stub(mockVoiceConnection).getter("unsuccessConnected").returns(mockUnuccessConnectedSignal); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function execute_enabledIsFalse_closeInvokedOnVoiceStreamManager():void + { + instance.enabled = false; + stub(mockUserSession).getter("voiceStreamManager").returns(mockVoiceStreamManager); + expect(instance.userSession.voiceStreamManager.close()).once(); + instance.execute(); + } + + [Test] + public function execute_voiceConnectionNotEstablished_connectInvokedOnVoiceConnection():void + { + instance.enabled = true; + stub(mockNetConnection).getter("connected").returns(false); + expect(instance.userSession.voiceConnection.connect(mockConferenceParameters)).once(); + instance.execute(); + } + + [Test] + public function execute_voiceConnectionCallNotActive_CallInvokedOnVoiceConnection():void + { + instance.enabled = true; + stub(mockNetConnection).getter("connected").returns(true); + stub(mockVoiceConnection).getter("callActive").returns(false); + expect(instance.userSession.voiceConnection.call()).once(); + instance.execute(); + } + + [Test] + public function execute_voiceConnectionCallAlreadyActive_NoMethodInvokedOnVoiceConnection():void + { + instance.enabled = true; + stub(mockNetConnection).getter("connected").returns(true); + stub(mockVoiceConnection).getter("callActive").returns(true); + expect(instance.userSession.voiceConnection.call()).never(); + instance.execute(); + assertThat(instance.userSession.voiceConnection, received().method("call").anyArgs().never()); + } + +/* DOES NOT WORK... The problem is because there is a locally constructed object in 'mediaSuccessConnected' method + (the VoiceStreamManager instance) that has many dependencies needed to work... I will come back to this later and + try to "Inject" the voice stream manager into the share mic command w/o breaking, so that I can try to mock it.. - Adam + + [Test] + public function execute_onConnectionSuccess_VoiceStreamManagerInitialized():void + { + instance.enabled = true; + stub(mockNetConnection).getter("connected").returns(false); + stub(mockUserSession).getter("voiceStreamManager").returns(mockVoiceStreamManager); + stub(mockVoiceConnection).method("connect").args(mockConferenceParameters).calls(mockSuccessConnectedSignal.dispatch, ["ABC", "XYZ", "PQR"]); + expect(mockVoiceStreamManager.play(mockVoiceConnection.connection, "XYZ")).once(); + expect(mockVoiceStreamManager.publish(mockVoiceConnection.connection, "ABC", "PQR")).once(); + instance.execute(); + } +*/ + + [Test] + public function instantiated_isInstanceOfShareCameraCommand():void + { + assertTrue("instance is ShareMicrophoneCommand", instance is ShareMicrophoneCommand); + } + + [Test] + public function instantiated_implementsRobotlegsCommand():void + { + assertTrue("instance is robotlegs Command", instance is Command); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/command/ShareMicrophoneSignalTest.as b/tests/org/bigbluebutton/command/ShareMicrophoneSignalTest.as new file mode 100644 index 0000000..5b7b2cc --- /dev/null +++ b/tests/org/bigbluebutton/command/ShareMicrophoneSignalTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.command +{ + import org.flexunit.asserts.assertTrue; + import org.osflash.signals.ISignal; + + public class ShareMicrophoneSignalTest + { + protected var instance:ShareMicrophoneSignal; + + [Before] + public function setUp():void + { + instance = new ShareMicrophoneSignal(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfShareMicrophoneSignal():void + { + assertTrue("instance is ShareMicrophoneSignall", instance is ShareMicrophoneSignal); + } + + [Test] + public function instantiated_implementsISignal():void + { + assertTrue("instance implements ISignal", instance is ISignal); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/BaseConnectionTest.as b/tests/org/bigbluebutton/core/BaseConnectionTest.as new file mode 100644 index 0000000..db8fb1c --- /dev/null +++ b/tests/org/bigbluebutton/core/BaseConnectionTest.as @@ -0,0 +1,33 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class BaseConnectionTest + { + protected var instance:BaseConnection; + + [Before] + public function setUp():void + { + instance = new BaseConnection(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfBaseConnection():void + { + assertTrue("instance is BaseConnection", instance is BaseConnection); + } + + [Test] + public function instantiated_implementsIBaseConnectionInterface():void + { + assertTrue("instance implements IBaseConnection interface", instance is IBaseConnection); + } + } +} diff --git a/tests/org/bigbluebutton/core/BigBlueButtonConnectionTest.as b/tests/org/bigbluebutton/core/BigBlueButtonConnectionTest.as new file mode 100644 index 0000000..202346d --- /dev/null +++ b/tests/org/bigbluebutton/core/BigBlueButtonConnectionTest.as @@ -0,0 +1,39 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class BigBlueButtonConnectionTest + { + protected var instance:BigBlueButtonConnection; + + [Before] + public function setUp():void + { + instance = new BigBlueButtonConnection(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfBigBlueButtonConnection():void + { + assertTrue("instance is BigBlueButtonConnection", instance is BigBlueButtonConnection); + } + + [Test] + public function instantiated_implementsIBigBlueButtonConnectionInterface():void + { + assertTrue("instance implements IBigBlueButtonConnection interface", instance is IBigBlueButtonConnection); + } + + [Test] + public function instantiated_extendsDefaultConnectionCallback():void + { + assertTrue("instance extends DefaultConnectionCallback", instance is DefaultConnectionCallback); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/ChatMessageReceiverTest.as b/tests/org/bigbluebutton/core/ChatMessageReceiverTest.as new file mode 100644 index 0000000..b652e69 --- /dev/null +++ b/tests/org/bigbluebutton/core/ChatMessageReceiverTest.as @@ -0,0 +1,60 @@ +package org.bigbluebutton.core +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + + import org.bigbluebutton.model.IMessageListener; + import org.bigbluebutton.model.UserSession; + import org.bigbluebutton.model.chat.ChatMessagesSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + + public class ChatMessageReceiverTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var userSession:UserSession; + + [Mock] + public var chatMessagesSession:ChatMessagesSession; + + private static var TIMEOUT:Number = 5000; + + protected var instance:ChatMessageReceiver; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(UserSession, ChatMessagesSession), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new ChatMessageReceiver(userSession, chatMessagesSession); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatMessageReceiver():void + { + assertTrue("instance is ChatMessageReceiver", instance is ChatMessageReceiver); + } + + [Test] + public function instantiated_implementsIMessageListenerInterface():void + { + assertTrue("instance implements IMessageListener interface", instance is IMessageListener); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/ChatMessageSenderTest.as b/tests/org/bigbluebutton/core/ChatMessageSenderTest.as new file mode 100644 index 0000000..3f67a4f --- /dev/null +++ b/tests/org/bigbluebutton/core/ChatMessageSenderTest.as @@ -0,0 +1,56 @@ +package org.bigbluebutton.core +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + + import org.bigbluebutton.model.UserSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + public class ChatMessageSenderTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var userSession:UserSession; + + [Mock] + public var successSendMessageSignal:Signal; + + [Mock] + public var failureSendingMessageSignal:Signal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:ChatMessageSender; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(UserSession, Signal), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new ChatMessageSender(userSession, successSendMessageSignal, failureSendingMessageSignal); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatMessageSender():void + { + assertTrue("instance is ChatMessageSender", instance is ChatMessageSender); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/ChatMessageServiceTest.as b/tests/org/bigbluebutton/core/ChatMessageServiceTest.as new file mode 100644 index 0000000..2ce7a43 --- /dev/null +++ b/tests/org/bigbluebutton/core/ChatMessageServiceTest.as @@ -0,0 +1,33 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class ChatMessageServiceTest + { + protected var instance:ChatMessageService; + + [Before] + public function setUp():void + { + instance = new ChatMessageService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatMessageService():void + { + assertTrue("instance is ChatMessageService", instance is ChatMessageService); + } + + [Test] + public function instantiated_implementsIChatMessageServiceInterface():void + { + assertTrue("instance implements IChatMessageService interface", instance is IChatMessageService); + } + } +} diff --git a/tests/org/bigbluebutton/core/ConfigServiceTest.as b/tests/org/bigbluebutton/core/ConfigServiceTest.as new file mode 100644 index 0000000..5794351 --- /dev/null +++ b/tests/org/bigbluebutton/core/ConfigServiceTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class ConfigServiceTest + { + protected var instance:ConfigService; + + [Before] + public function setUp():void + { + instance = new ConfigService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfConfigService():void + { + assertTrue("instance is ConfigService", instance is ConfigService); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/DefaultConnectionCallbackTest.as b/tests/org/bigbluebutton/core/DefaultConnectionCallbackTest.as new file mode 100644 index 0000000..642f51c --- /dev/null +++ b/tests/org/bigbluebutton/core/DefaultConnectionCallbackTest.as @@ -0,0 +1,33 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class DefaultConnectionCallbackTest + { + protected var instance:DefaultConnectionCallback; + + [Before] + public function setUp():void + { + instance = new DefaultConnectionCallback(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDefaultConnectionCallback():void + { + assertTrue("instance is DefaultConnectionCallback", instance is DefaultConnectionCallback); + } + + [Test] + public function instantiated_implementsIDefaultConnectionCallbackInterface():void + { + assertTrue("instance implements IDefaultConnectionCallback interface", instance is IDefaultConnectionCallback); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/DeskshareConnectionTest.as b/tests/org/bigbluebutton/core/DeskshareConnectionTest.as new file mode 100644 index 0000000..649d7a2 --- /dev/null +++ b/tests/org/bigbluebutton/core/DeskshareConnectionTest.as @@ -0,0 +1,39 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class DeskshareConnectionTest + { + protected var instance:DeskshareConnection; + + [Before] + public function setUp():void + { + instance = new DeskshareConnection(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDeskshareConnection():void + { + assertTrue("instance is DeskshareConnection", instance is DeskshareConnection); + } + + [Test] + public function instantiated_extendsDefaultConnectionCallback():void + { + assertTrue("instance extends DefaultConnectionCallback", instance is DefaultConnectionCallback); + } + + [Test] + public function instantiated_implementsIDeskshareConnectionInterface():void + { + assertTrue("instance implements IDeskshareConnection interface", instance is IDeskshareConnection); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/EnterServiceTest.as b/tests/org/bigbluebutton/core/EnterServiceTest.as new file mode 100644 index 0000000..1dd4083 --- /dev/null +++ b/tests/org/bigbluebutton/core/EnterServiceTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class EnterServiceTest + { + protected var instance:EnterService; + + [Before] + public function setUp():void + { + instance = new EnterService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfEnterService():void + { + assertTrue("instance is EnterService", instance is EnterService); + } + } +} diff --git a/tests/org/bigbluebutton/core/IBaseConnectionTest.as b/tests/org/bigbluebutton/core/IBaseConnectionTest.as new file mode 100644 index 0000000..aaa0a8a --- /dev/null +++ b/tests/org/bigbluebutton/core/IBaseConnectionTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class IBaseConnectionTest + { + protected var instance:IBaseConnection; + + [Before] + public function setUp():void + { + instance = new BaseConnection(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIBaseConnection():void + { + assertTrue("instance is IBaseConnection", instance is IBaseConnection); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/IBigBlueButtonConnectionTest.as b/tests/org/bigbluebutton/core/IBigBlueButtonConnectionTest.as new file mode 100644 index 0000000..1568fbe --- /dev/null +++ b/tests/org/bigbluebutton/core/IBigBlueButtonConnectionTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class IBigBlueButtonConnectionTest + { + protected var instance:IBigBlueButtonConnection; + + [Before] + public function setUp():void + { + instance = new BigBlueButtonConnection(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIBigBlueButtonConnection():void + { + assertTrue("instance is IBigBlueButtonConnection", instance is IBigBlueButtonConnection); + } + } +} diff --git a/tests/org/bigbluebutton/core/IChatMessageServiceTest.as b/tests/org/bigbluebutton/core/IChatMessageServiceTest.as new file mode 100644 index 0000000..9d25ce5 --- /dev/null +++ b/tests/org/bigbluebutton/core/IChatMessageServiceTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class IChatMessageServiceTest + { + protected var instance:IChatMessageService; + + [Before] + public function setUp():void + { + instance = new ChatMessageService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIChatMessageService():void + { + assertTrue("instance is IChatMessageService", instance is IChatMessageService); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/IDefaultConnectionCallbackTest.as b/tests/org/bigbluebutton/core/IDefaultConnectionCallbackTest.as new file mode 100644 index 0000000..baa5add --- /dev/null +++ b/tests/org/bigbluebutton/core/IDefaultConnectionCallbackTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class IDefaultConnectionCallbackTest + { + protected var instance:IDefaultConnectionCallback; + + [Before] + public function setUp():void + { + instance = new DefaultConnectionCallback(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIDefaultConnectionCallback():void + { + assertTrue("instance is IDefaultConnectionCallback", instance is IDefaultConnectionCallback); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/IDeskshareConnectionTest.as b/tests/org/bigbluebutton/core/IDeskshareConnectionTest.as new file mode 100644 index 0000000..e0a7845 --- /dev/null +++ b/tests/org/bigbluebutton/core/IDeskshareConnectionTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class IDeskshareConnectionTest + { + protected var instance:IDeskshareConnection; + + [Before] + public function setUp():void + { + instance = new DeskshareConnection(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIDeskshareConnection():void + { + assertTrue("instance is IDeskshareConnection", instance is IDeskshareConnection); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/ILoginServiceTest.as b/tests/org/bigbluebutton/core/ILoginServiceTest.as new file mode 100644 index 0000000..d462e3c --- /dev/null +++ b/tests/org/bigbluebutton/core/ILoginServiceTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class ILoginServiceTest + { + protected var instance:ILoginService; + + [Before] + public function setUp():void + { + instance = new LoginService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfILoginService():void + { + assertTrue("instance is ILoginService", instance is ILoginService); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/IPresentationServiceTest.as b/tests/org/bigbluebutton/core/IPresentationServiceTest.as new file mode 100644 index 0000000..14f0ec8 --- /dev/null +++ b/tests/org/bigbluebutton/core/IPresentationServiceTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class IPresentationServiceTest + { + protected var instance:IPresentationService; + + [Before] + public function setUp():void + { + instance = new PresentationService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIPresentationService():void + { + assertTrue("instance is IPresentationService", instance is IPresentationService); + } + } +} diff --git a/tests/org/bigbluebutton/core/IUsersServiceTest.as b/tests/org/bigbluebutton/core/IUsersServiceTest.as new file mode 100644 index 0000000..2bde71e --- /dev/null +++ b/tests/org/bigbluebutton/core/IUsersServiceTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class IUsersServiceTest + { + protected var instance:IUsersService; + + [Before] + public function setUp():void + { + instance = new UsersService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIUsersService():void + { + assertTrue("instance is IUsersService", instance is IUsersService); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/IVideoConnectionTest.as b/tests/org/bigbluebutton/core/IVideoConnectionTest.as new file mode 100644 index 0000000..cf5f2bb --- /dev/null +++ b/tests/org/bigbluebutton/core/IVideoConnectionTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class IVideoConnectionTest + { + protected var instance:IVideoConnection; + + [Before] + public function setUp():void + { + instance = new VideoConnection(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIVideoConnection():void + { + assertTrue("instance is IVideoConnection", instance is IVideoConnection); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/IVoiceConnectionTest.as b/tests/org/bigbluebutton/core/IVoiceConnectionTest.as new file mode 100644 index 0000000..cc3fec8 --- /dev/null +++ b/tests/org/bigbluebutton/core/IVoiceConnectionTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class IVoiceConnectionTest + { + protected var instance:IVoiceConnection; + + [Before] + public function setUp():void + { + instance = new VoiceConnection(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIVoiceConnection():void + { + assertTrue("instance is IVoiceConnection", instance is IVoiceConnection); + } + } +} diff --git a/tests/org/bigbluebutton/core/JoinServiceTest.as b/tests/org/bigbluebutton/core/JoinServiceTest.as new file mode 100644 index 0000000..5e9cc1e --- /dev/null +++ b/tests/org/bigbluebutton/core/JoinServiceTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class JoinServiceTest + { + protected var instance:JoinService; + + [Before] + public function setUp():void + { + instance = new JoinService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfJoinService():void + { + assertTrue("instance is JoinService", instance is JoinService); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/LoadSlideServiceTest.as b/tests/org/bigbluebutton/core/LoadSlideServiceTest.as new file mode 100644 index 0000000..bf0e46d --- /dev/null +++ b/tests/org/bigbluebutton/core/LoadSlideServiceTest.as @@ -0,0 +1,47 @@ +package org.bigbluebutton.core +{ + import flash.events.Event; + + import mockolate.prepare; + + import org.bigbluebutton.model.presentation.Slide; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + + public class LoadSlideServiceTest + { + [Mock] + public var slide:Slide; + + private static var TIMEOUT:Number = 5000; + + protected var instance:LoadSlideService; + + [Before(async)] + public function setUp():void + { + // TODO : Provide valid constructor parameters relevant to the test + Async.proceedOnEvent(this, prepare(Slide), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new LoadSlideService(slide); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Ignore] + [Test] + public function instantiated_isInstanceOfLoadSlideService():void + { + assertTrue("instance is LoadSlideService", instance is LoadSlideService); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/core/LoginServiceTest.as b/tests/org/bigbluebutton/core/LoginServiceTest.as new file mode 100644 index 0000000..537c4d8 --- /dev/null +++ b/tests/org/bigbluebutton/core/LoginServiceTest.as @@ -0,0 +1,33 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class LoginServiceTest + { + protected var instance:LoginService; + + [Before] + public function setUp():void + { + instance = new LoginService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoginService():void + { + assertTrue("instance is LoginService", instance is LoginService); + } + + [Test] + public function instantiated_implementsILoginService():void + { + assertTrue("instance implements ILoginService", instance is ILoginService); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/PresentMessageReceiverTest.as b/tests/org/bigbluebutton/core/PresentMessageReceiverTest.as new file mode 100644 index 0000000..b3d7407 --- /dev/null +++ b/tests/org/bigbluebutton/core/PresentMessageReceiverTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.core +{ + import org.bigbluebutton.model.IMessageListener; + import org.flexunit.asserts.assertTrue; + + public class PresentMessageReceiverTest + { + protected var instance:PresentMessageReceiver; + + [Before] + public function setUp():void + { + instance = new PresentMessageReceiver(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPresentMessageReceiver():void + { + assertTrue("instance is PresentMessageReceiver", instance is PresentMessageReceiver); + } + + [Test] + public function instantiated_implementsIMessageListener():void + { + assertTrue("instance implements IMessageListener", instance is IMessageListener); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/PresentMessageSenderTest.as b/tests/org/bigbluebutton/core/PresentMessageSenderTest.as new file mode 100644 index 0000000..1c9352b --- /dev/null +++ b/tests/org/bigbluebutton/core/PresentMessageSenderTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class PresentMessageSenderTest + { + protected var instance:PresentMessageSender; + + [Before] + public function setUp():void + { + instance = new PresentMessageSender(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPresentMessageSender():void + { + assertTrue("instance is PresentMessageSender", instance is PresentMessageSender); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/PresentationServiceTest.as b/tests/org/bigbluebutton/core/PresentationServiceTest.as new file mode 100644 index 0000000..fc9a2b3 --- /dev/null +++ b/tests/org/bigbluebutton/core/PresentationServiceTest.as @@ -0,0 +1,33 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class PresentationServiceTest + { + protected var instance:PresentationService; + + [Before] + public function setUp():void + { + instance = new PresentationService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPresentationService():void + { + assertTrue("instance is PresentationService", instance is PresentationService); + } + + [Test] + public function instantiated_implementsIPresentationService():void + { + assertTrue("instance implements IPresentationService", instance is IPresentationService); + } + } +} diff --git a/tests/org/bigbluebutton/core/UsersMessageReceiverTest.as b/tests/org/bigbluebutton/core/UsersMessageReceiverTest.as new file mode 100644 index 0000000..bb39fa7 --- /dev/null +++ b/tests/org/bigbluebutton/core/UsersMessageReceiverTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.core +{ + import org.bigbluebutton.model.IMessageListener; + import org.flexunit.asserts.assertTrue; + + public class UsersMessageReceiverTest + { + protected var instance:UsersMessageReceiver; + + [Before] + public function setUp():void + { + instance = new UsersMessageReceiver(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUsersMessageReceiver():void + { + assertTrue("instance is UsersMessageReceiver", instance is UsersMessageReceiver); + } + + [Test] + public function instantiated_implementsIMessageListener():void + { + assertTrue("instance implements IMessageListener", instance is IMessageListener); + } + } +} diff --git a/tests/org/bigbluebutton/core/UsersMessageSenderTest.as b/tests/org/bigbluebutton/core/UsersMessageSenderTest.as new file mode 100644 index 0000000..e1736fc --- /dev/null +++ b/tests/org/bigbluebutton/core/UsersMessageSenderTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class UsersMessageSenderTest + { + protected var instance:UsersMessageSender; + + [Before] + public function setUp():void + { + instance = new UsersMessageSender(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUsersMessageSender():void + { + assertTrue("instance is UsersMessageSender", instance is UsersMessageSender); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/UsersServiceTest.as b/tests/org/bigbluebutton/core/UsersServiceTest.as new file mode 100644 index 0000000..54a71d9 --- /dev/null +++ b/tests/org/bigbluebutton/core/UsersServiceTest.as @@ -0,0 +1,33 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class UsersServiceTest + { + protected var instance:UsersService; + + [Before] + public function setUp():void + { + instance = new UsersService(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUsersService():void + { + assertTrue("instance is UsersService", instance is UsersService); + } + + [Test] + public function instantiated_implementsIUsersService():void + { + assertTrue("instance implements IUsersService", instance is IUsersService); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/VideoConnectionTest.as b/tests/org/bigbluebutton/core/VideoConnectionTest.as new file mode 100644 index 0000000..d2f75ab --- /dev/null +++ b/tests/org/bigbluebutton/core/VideoConnectionTest.as @@ -0,0 +1,39 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class VideoConnectionTest + { + protected var instance:VideoConnection; + + [Before] + public function setUp():void + { + instance = new VideoConnection(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVideoConnection():void + { + assertTrue("instance is VideoConnection", instance is VideoConnection); + } + + [Test] + public function instantiated_extendsDefaultConnectionCallback():void + { + assertTrue("instance extends DefaultConnectionCallback", instance is DefaultConnectionCallback); + } + + [Test] + public function instantiated_implementsIVideoConnectionInterface():void + { + assertTrue("instance implements IVideoConnection interface", instance is IVideoConnection); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/VoiceConnectionTest.as b/tests/org/bigbluebutton/core/VoiceConnectionTest.as new file mode 100644 index 0000000..5324ca6 --- /dev/null +++ b/tests/org/bigbluebutton/core/VoiceConnectionTest.as @@ -0,0 +1,39 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class VoiceConnectionTest + { + protected var instance:VoiceConnection; + + [Before] + public function setUp():void + { + instance = new VoiceConnection(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVoiceConnection():void + { + assertTrue("instance is VoiceConnection", instance is VoiceConnection); + } + + [Test] + public function instantiated_extendsDefaultConnectionCallback():void + { + assertTrue("instance extends DefaultConnectionCallback", instance is DefaultConnectionCallback); + } + + [Test] + public function instantiated_implementsIVoiceConnectionInterface():void + { + assertTrue("instance implements IVoiceConnection interface", instance is IVoiceConnection); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/VoiceStreamManagerTest.as b/tests/org/bigbluebutton/core/VoiceStreamManagerTest.as new file mode 100644 index 0000000..021848b --- /dev/null +++ b/tests/org/bigbluebutton/core/VoiceStreamManagerTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.core +{ + import org.flexunit.asserts.assertTrue; + + public class VoiceStreamManagerTest + { + protected var instance:VoiceStreamManager; + + [Before] + public function setUp():void + { + instance = new VoiceStreamManager(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVoiceStreamManager():void + { + assertTrue("instance is VoiceStreamManager", instance is VoiceStreamManager); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/util/OrientationCalculatorTest.as b/tests/org/bigbluebutton/core/util/OrientationCalculatorTest.as new file mode 100644 index 0000000..145a586 --- /dev/null +++ b/tests/org/bigbluebutton/core/util/OrientationCalculatorTest.as @@ -0,0 +1,37 @@ +package org.bigbluebutton.core.util +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + import flash.display.DisplayObject; + + public class OrientationCalculatorTest + { + protected var instance:OrientationCalculator; + + [Before] + public function setUp():void + { + // TODO : Provide valid constructor parameters relevant to the test + instance = new OrientationCalculator(new DisplayObject(), testFunction); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Ignore] + [Test] + public function instantiated_isInstanceOfOrientationCalculator():void + { + assertTrue("instance is OrientationCalculator", instance is OrientationCalculator); + } + + private function testFunction():void + { + + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/util/URLFetcherTest.as b/tests/org/bigbluebutton/core/util/URLFetcherTest.as new file mode 100644 index 0000000..82982f9 --- /dev/null +++ b/tests/org/bigbluebutton/core/util/URLFetcherTest.as @@ -0,0 +1,29 @@ +package org.bigbluebutton.core.util +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class URLFetcherTest + { + protected var instance:URLFetcher; + + [Before] + public function setUp():void + { + instance = new URLFetcher(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfURLFetcher():void + { + assertTrue("instance is URLFetcher", instance is URLFetcher); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/util/URLParserTest.as b/tests/org/bigbluebutton/core/util/URLParserTest.as new file mode 100644 index 0000000..905493c --- /dev/null +++ b/tests/org/bigbluebutton/core/util/URLParserTest.as @@ -0,0 +1,29 @@ +package org.bigbluebutton.core.util +{ + import org.flexunit.asserts.assertTrue; + + public class URLParserTest + { + protected var instance:URLParser; + + [Before] + public function setUp():void + { + // TODO : Provide valid constructor parameters relevant to the test + instance = new URLParser("testString"); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Ignore] + [Test] + public function instantiated_isInstanceOfURLParser():void + { + assertTrue("instance is URLParser", instance is URLParser); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/util/VectorUtilTest.as b/tests/org/bigbluebutton/core/util/VectorUtilTest.as new file mode 100644 index 0000000..882d0da --- /dev/null +++ b/tests/org/bigbluebutton/core/util/VectorUtilTest.as @@ -0,0 +1,29 @@ +package org.bigbluebutton.core.util +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class VectorUtilTest + { + protected var instance:VectorUtil; + + [Before] + public function setUp():void + { + instance = new VectorUtil(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVectorUtil():void + { + assertTrue("instance is VectorUtil", instance is VectorUtil); + } + } +} diff --git a/tests/org/bigbluebutton/core/view/IViewTest.as b/tests/org/bigbluebutton/core/view/IViewTest.as new file mode 100644 index 0000000..53fad33 --- /dev/null +++ b/tests/org/bigbluebutton/core/view/IViewTest.as @@ -0,0 +1,31 @@ +package org.bigbluebutton.core.view +{ + import org.bigbluebutton.view.navigation.PagesNavigatorView; + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class IViewTest + { + protected var instance:IView; + + [Before] + public function setUp():void + { + // TODO : Provide valid constructor parameters relevant to the test + instance = new PagesNavigatorView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIView():void + { + assertTrue("instance is IView", instance is IView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/core/view/NoTabViewTest.as b/tests/org/bigbluebutton/core/view/NoTabViewTest.as new file mode 100644 index 0000000..2509013 --- /dev/null +++ b/tests/org/bigbluebutton/core/view/NoTabViewTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.core.view +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class NoTabViewTest + { + protected var instance:NoTabView; + + [Before] + public function setUp():void + { + instance = new NoTabView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfNoTabView():void + { + assertTrue("instance is NoTabView", instance is NoTabView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} diff --git a/tests/org/bigbluebutton/model/ConferenceParametersTest.as b/tests/org/bigbluebutton/model/ConferenceParametersTest.as new file mode 100644 index 0000000..ae2d0b7 --- /dev/null +++ b/tests/org/bigbluebutton/model/ConferenceParametersTest.as @@ -0,0 +1,33 @@ +package org.bigbluebutton.model +{ + import org.flexunit.asserts.assertTrue; + + public class ConferenceParametersTest + { + protected var instance:ConferenceParameters; + + [Before] + public function setUp():void + { + instance = new ConferenceParameters(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfConferenceParameters():void + { + assertTrue("instance is ConferenceParameters", instance is ConferenceParameters); + } + + [Test] + public function instantiated_implementsIConferenceParametersInterface():void + { + assertTrue("instance implements IConferenceParameters interface", instance is IConferenceParameters); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/ConfigTest.as b/tests/org/bigbluebutton/model/ConfigTest.as new file mode 100644 index 0000000..ea712b5 --- /dev/null +++ b/tests/org/bigbluebutton/model/ConfigTest.as @@ -0,0 +1,28 @@ +package org.bigbluebutton.model +{ + import org.flexunit.asserts.assertTrue; + + public class ConfigTest + { + protected var instance:Config; + + [Before] + public function setUp():void + { + // TODO : Provide valid constructor parameters relevant to the test + instance = new Config(new XML()); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfConfig():void + { + assertTrue("instance is Config", instance is Config); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/ConnectionFailedEventTest.as b/tests/org/bigbluebutton/model/ConnectionFailedEventTest.as new file mode 100644 index 0000000..d6daaaf --- /dev/null +++ b/tests/org/bigbluebutton/model/ConnectionFailedEventTest.as @@ -0,0 +1,36 @@ +package org.bigbluebutton.model +{ + import flash.events.Event; + + import org.flexunit.asserts.assertTrue; + + public class ConnectionFailedEventTest + { + protected var instance:ConnectionFailedEvent; + + [Before] + public function setUp():void + { + // TODO : Provide valid constructor parameters relevant to the test + instance = new ConnectionFailedEvent("testEvent"); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfConnectionFailedEvent():void + { + assertTrue("instance is ConnectionFailedEvent", instance is ConnectionFailedEvent); + } + + [Test] + public function instantiated_isInstanceOfEvent():void + { + assertTrue("instance is Event", instance is Event); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/IConferenceParametersTest.as b/tests/org/bigbluebutton/model/IConferenceParametersTest.as new file mode 100644 index 0000000..6d16435 --- /dev/null +++ b/tests/org/bigbluebutton/model/IConferenceParametersTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.model +{ + import org.flexunit.asserts.assertTrue; + + public class IConferenceParametersTest + { + protected var instance:IConferenceParameters; + + [Before] + public function setUp():void + { + instance = new ConferenceParameters(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIConferenceParameters():void + { + assertTrue("instance is IConferenceParameters", instance is IConferenceParameters); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/IMessageListenerTest.as b/tests/org/bigbluebutton/model/IMessageListenerTest.as new file mode 100644 index 0000000..db51af9 --- /dev/null +++ b/tests/org/bigbluebutton/model/IMessageListenerTest.as @@ -0,0 +1,49 @@ +package org.bigbluebutton.model +{ + import flash.events.Event; + + import mockolate.prepare; + + import org.bigbluebutton.core.ChatMessageReceiver; + import org.bigbluebutton.model.chat.ChatMessagesSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + + public class IMessageListenerTest + { + [Mock] + public var chatMessageSession:ChatMessagesSession; + + [Mock] + public var userSession:UserSession; + + private static var TIMEOUT:Number = 5000; + + protected var instance:IMessageListener; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(UserSession, ChatMessagesSession), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new ChatMessageReceiver(userSession, chatMessageSession); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIMessageListener():void + { + assertTrue("instance is IMessageListener", instance is IMessageListener); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/IUserSessionTest.as b/tests/org/bigbluebutton/model/IUserSessionTest.as new file mode 100644 index 0000000..d6d07f1 --- /dev/null +++ b/tests/org/bigbluebutton/model/IUserSessionTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.model +{ + import org.flexunit.asserts.assertTrue; + + public class IUserSessionTest + { + protected var instance:IUserSession; + + [Before] + public function setUp():void + { + instance = new UserSession(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIUserSession():void + { + assertTrue("instance is IUserSession", instance is IUserSession); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/IUserUISessionTest.as b/tests/org/bigbluebutton/model/IUserUISessionTest.as new file mode 100644 index 0000000..6adc507 --- /dev/null +++ b/tests/org/bigbluebutton/model/IUserUISessionTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.model +{ + import org.flexunit.asserts.assertTrue; + + public class IUserUISessionTest + { + protected var instance:IUserUISession; + + [Before] + public function setUp():void + { + instance = new UserUISession(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIUserUISession():void + { + assertTrue("instance is IUserUISession", instance is IUserUISession); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/UserListTest.as b/tests/org/bigbluebutton/model/UserListTest.as new file mode 100644 index 0000000..14704ee --- /dev/null +++ b/tests/org/bigbluebutton/model/UserListTest.as @@ -0,0 +1,839 @@ +package org.bigbluebutton.model +{ + import flash.events.EventDispatcher; + + import mockolate.runner.MockolateRule; + + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.hamcrest.object.equalTo; + + public class UserListTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + public var instance:UserList; + + /* Event dispatcher for the helper event types, defined in the 'UserListTestHelperEvents' class. They are used + * to check that signals are dispatched, and with the right arguments, by putting listener methods on the + * signals that dispatch an event if all goes well. If the signal is not dispatched, the method will not be + * invoked, and the test will timeout waiting for the event. If they are called, but with the wrong arguments, + * then the assertions within the listener method will fail. */ + public var dispatcher:EventDispatcher = new EventDispatcher(); + + [Before] + public function setUp():void + { + instance = new UserList(); + } + + /* UserList::addUser tests */ + + [Test] + public function addUser_addingNewUser_userIsAddedToList():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + assertThat(instance.hasUser("123")); + } + + [Test] + public function addUser_userAlreadyInUserList_userNotAddedAgain():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.addUser(newUser); + instance.addUser(newUser); + instance.addUser(newUser); + assertThat(instance.users.length, equalTo(1)); + } + + [Test] + public function addUser_addingMultipleUsers_allUsersAreAddedToList():void + { + var user1:User = createNewUser("111", "AAA"); + var user2:User = createNewUser("222", "BBB"); + var user3:User = createNewUser("333", "CCC"); + var user4:User = createNewUser("444", "DDD"); + + instance.addUser(user1); + instance.addUser(user2); + instance.addUser(user3); + instance.addUser(user4); + + assertThat(instance.hasUser("111")); + assertThat(instance.hasUser("222")); + assertThat(instance.hasUser("333")); + assertThat(instance.hasUser("444")); + } + + [Test] + public function addUser_newuserIsMe_newuserIsAssignedToMe():void + { + var newUser:User = createNewUser("123", "MEEE"); + instance.me.userID = "123"; + instance.addUser(newUser); + + assertThat(instance.me, equalTo(newUser)); + assertThat(newUser.me, equalTo(true)); + } + + [Test (async)] + public function addUser_addingUserWithStream_dispatchesHasStreamSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.hasStream = true; + instance.userChangeSignal.add(hasStreamSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.HAS_STREAM, 5000); + instance.addUser(newUser); + } + + private function hasStreamSignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUserByUserId("123"))); + assertThat(change, equalTo(UserList.HAS_STREAM)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.HAS_STREAM)); + } + + [Test (async)] + public function addUser_addingUserWithPresenterStatus_dispatchesPresenterSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.presenter = true; + instance.userChangeSignal.add(presenterSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.PRESENTER, 5000); + instance.addUser(newUser); + } + + private function presenterSignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUserByUserId("123"))); + assertThat(change, equalTo(UserList.PRESENTER)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.PRESENTER)); + } + + [Test (async)] + public function addUser_addingUserWithHandRaised_dispatchesRaiseHandSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.raiseHand = true; + instance.userChangeSignal.add(handRaisedSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.RAISE_HAND, 5000); + instance.addUser(newUser); + } + + private function handRaisedSignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUserByUserId("123"))); + assertThat(change, equalTo(UserList.RAISE_HAND)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.RAISE_HAND)); + } + + [Test (async)] + public function addUser_addingUserWithListenOnly_dispatchesListenOnlySignal():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.listenOnly = true; + instance.userChangeSignal.add(listenOnlySignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.LISTEN_ONLY, 5000); + instance.addUser(newUser); + } + + public function listenOnlySignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUserByUserId("123"))); + assertThat(change, equalTo(UserList.LISTEN_ONLY)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.LISTEN_ONLY)); + } + + [Test (async)] + public function addUser_addingUser_dispatchesUserAddedSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.userAddedSignal.add(userAddedSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.USER_ADDED, 5000); + instance.addUser(newUser); + } + + private function userAddedSignalChecker(newUser:User):void + { + assertThat(newUser, equalTo(instance.getUser("123"))); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.USER_ADDED)); + } + + /* UserList::hasUser tests */ + + [Test] + public function hasUser_usersInUserList_hasUserReturnsTrue():void + { + var newUser1:User = createNewUser("111", "AAA"); + var newUser2:User = createNewUser("222", "BBB"); + var newUser3:User = createNewUser("333", "CCC"); + + instance.addUser(newUser1); + instance.addUser(newUser2); + instance.addUser(newUser3); + + assertThat(instance.hasUser("111"), equalTo(true)); + assertThat(instance.hasUser("222"), equalTo(true)); + assertThat(instance.hasUser("333"), equalTo(true)); + } + + [Test] + public function hasUser_userRemoved_hasUserReturnsFalse():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.removeUser("123"); + assertThat(instance.hasUser("123"), equalTo(false)); + } + + /* UserList::getUser tests */ + + [Test] + public function getUser_userInUserList_referenceToThatUserIsReturned():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + assertThat(instance.getUser("123"), equalTo(newUser)); + } + + [Test] + public function getUser_userRemoved_returnsNull():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.removeUser("123"); + assertThat(instance.getUser("123"), equalTo(null)); + } + + /* UserList::getUserByVoiceUserId tests */ + + [Test] + public function getUserByVoiceUserId_returnsCorrectUser():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.voiceUserId = "987"; + instance.addUser(newUser); + assertThat(instance.getUserByVoiceUserId("987"), equalTo(newUser)); + } + + [Test] + public function getUserByVoiceUserId_userRemoved_returnsNull():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.voiceUserId = "987"; + instance.addUser(newUser); + instance.removeUser("123"); + assertThat(instance.getUserByVoiceUserId("987"), equalTo(null)); + } + + /* UserList::removeUser tests */ + + [Test] + public function removeUser_userInUserList_removesUser():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.removeUser("123"); + assertThat(instance.users.length, equalTo(0)); + assertThat(instance.getUser("123"), equalTo(null)); + } + + [Test (async)] + public function removeUser_userInUserList_dispatchesUserRemovedSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.userRemovedSignal.add(userRemovedSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.USER_REMOVED, 5000); + instance.removeUser("123"); + } + + private function userRemovedSignalChecker(userID:String):void + { + assertThat(userID, equalTo("123")); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.USER_REMOVED)); + } + + [Test] + public function removeUser_userRemovedMultipleTimes_doesNothing():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.removeUser("123"); + instance.removeUser("123"); + instance.removeUser("123"); + assertThat(instance.users.length, equalTo(0)); + assertThat(instance.getUser("123"), equalTo(null)); + } + + /* UserList::getPresenter tests */ + + [Test] + public function getPresenter_presenterExists_returnsReferenceToPresenter():void + { + var newUser1:User = createNewUser("111", "AAA"); + var newUser2:User = createNewUser("222", "BBB"); + var newUser3:User = createNewUser("333", "CCC"); + + newUser1.presenter = true; + newUser2.presenter = false; + newUser3.presenter = false; + + instance.addUser(newUser1); + instance.addUser(newUser2); + instance.addUser(newUser3); + + assertThat(instance.getPresenter(), equalTo(newUser1)); + } + + [Test] + public function getPresenter_noPresenter_returnsNull():void + { + var newUser1:User = createNewUser("111", "AAA"); + var newUser2:User = createNewUser("222", "BBB"); + var newUser3:User = createNewUser("333", "CCC"); + + newUser1.presenter = false; + newUser2.presenter = false; + newUser3.presenter = false; + + instance.addUser(newUser1); + instance.addUser(newUser2); + instance.addUser(newUser3); + + assertThat(instance.getPresenter(), equalTo(null)); + } + + /* UserList::removePresenter tests */ + + [Test] + public function removePresenter_presenterExists_presenterStatusSetToFalse():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.presenter = true; + instance.addUser(newUser); + instance.removePresenter(); + assertThat(newUser.presenter, equalTo(false)); + assertThat(instance.getPresenter(), equalTo(null)); + } + + [Test] + public function removePresenter_presenterIsMe_myPresenterStatusSetToFalse():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.me.userID = "123"; + newUser.presenter = true; + instance.addUser(newUser); + instance.removePresenter(); + assertThat(instance.me.presenter, equalTo(false)); + } + + [Test (async)] + public function removePresenter_presenterExists_dispatchesPresenterSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.presenter = true; + instance.addUser(newUser); + instance.userChangeSignal.add(removePresenterSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.REMOVED_PRESENTER, 5000); + instance.removePresenter(); + } + + private function removePresenterSignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUserByUserId("123"))); + assertThat(change, equalTo(UserList.PRESENTER)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.REMOVED_PRESENTER)); + } + + [Test] + public function removePresenter_removePresenterInvokedManyTimes_doesntBreak():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.presenter = true; + instance.addUser(newUser); + instance.removePresenter(); + instance.removePresenter(); + instance.removePresenter(); + assertThat(instance.me.presenter, equalTo(false)); + } + + [Test] + public function removePresenter_noPresenter_doesntBreak():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.presenter = false; + instance.addUser(newUser); + instance.removePresenter(); + } + + /* UserList::assignPresenter tests */ + + [Test] + public function assignPresenter_assignsPresenter():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.assignPresenter("123"); + assertThat(newUser.presenter, equalTo(true)); + } + + [Test (async)] + public function assignPresenter_dispatchesPresenterSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.userChangeSignal.add(assignPresenterSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.ASSIGN_PRESENTER, 5000); + instance.assignPresenter("123"); + } + + private function assignPresenterSignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUser("123"))); + assertThat(change, equalTo(UserList.PRESENTER)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.ASSIGN_PRESENTER)); + } + + [Test] + public function assignPresenter_oldPresenterIsCleared():void + { + var oldPresenter:User = createNewUser("111", "AAA"); + var newPresenter:User = createNewUser("222", "BBB"); + oldPresenter.presenter = true; + newPresenter.presenter = false; + + instance.addUser(oldPresenter); + instance.addUser(newPresenter); + instance.assignPresenter("222"); + + assertThat(oldPresenter.presenter, equalTo(false)); + } + + [Test] + public function assignPresenter_newPresenterIsMe_setsMyPresenterStateToTrue():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.me = true; + instance.addUser(newUser); + instance.assignPresenter("123"); + assertThat(instance.me.presenter, equalTo(true)); + } + + [Test] + public function assignPresenter_oldPresenterIsMe_setsMyPresenterStateToFalse():void + { + var oldPresenter:User = createNewUser("111", "AAA"); + var newPresenter:User = createNewUser("222", "BBB"); + oldPresenter.presenter = true; + oldPresenter.me = true; + newPresenter.presenter = false; + + instance.addUser(oldPresenter); + instance.addUser(newPresenter); + instance.assignPresenter("222"); + + assertThat(instance.me.presenter, equalTo(false)); + } + + [Test] + public function assignPresenter_invalidUserID_doesntBreak():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.removeUser("123"); + instance.assignPresenter("123"); + instance.assignPresenter("invalid_id"); + } + + /* UserList::userStreamChange tests */ + + [Test] + public function userStreamChange_setsHasStreamAndStreamNameProperties():void + { + var newUser1:User = createNewUser("111", "AAA"); + newUser1.hasStream = false; + newUser1.streamName = ""; + + var newUser2:User = createNewUser("222", "BBB"); + newUser2.hasStream = true; + newUser1.streamName = "some_stream_name"; + + instance.addUser(newUser1); + instance.addUser(newUser2); + instance.userStreamChange("111", true, "some_other_stream_name"); + instance.userStreamChange("222", false, ""); + + assertThat(newUser1.hasStream, equalTo(true)); + assertThat(newUser1.streamName, equalTo("some_other_stream_name")); + assertThat(newUser2.hasStream, equalTo(false)); + assertThat(newUser2.streamName, equalTo("")); + } + + [Test (async)] + public function userStreamChange_dispatchesHasStreamSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.userChangeSignal.add(streamChangeChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.STREAM_CHANGE); + instance.userStreamChange("123", true, "some_stream_name"); + } + + private function streamChangeChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUser("123"))); + assertThat(change, equalTo(UserList.HAS_STREAM)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.STREAM_CHANGE)); + } + + [Test] + public function userStreamChange_invalidUserID_doesntBreak():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.removeUser("123"); + instance.userStreamChange("123", true, "some_stream_name"); + instance.userStreamChange("invalid_id", true, "some_stream_name"); + } + + /* UserList::raiseHandChange tests */ + + [Test] + public function raiseHandChange_setsRaiseHandProperty():void + { + var newUser1:User = createNewUser("111", "AAA"); + newUser1.raiseHand = true; + + var newUser2:User = createNewUser("222", "BBB"); + newUser2.raiseHand = false; + + instance.addUser(newUser1); + instance.addUser(newUser2); + instance.raiseHandChange("111", false); + instance.raiseHandChange("222", true); + + assertThat(newUser1.raiseHand, equalTo(false)); + assertThat(newUser2.raiseHand, equalTo(true)); + } + + [Test (async)] + public function raiseHandChange_dispatchesRaiseHandSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.userChangeSignal.add(raiseHandSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.RAISE_HAND_CHANGE, 5000); + instance.raiseHandChange("123", true); + } + + private function raiseHandSignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUser("123"))); + assertThat(change, equalTo(UserList.RAISE_HAND)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.RAISE_HAND_CHANGE)); + } + + [Test] + public function raiseHandChange_invalidUserID_doesntBreak():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.removeUser("123"); + instance.raiseHandChange("123", true); + instance.raiseHandChange("invalid_id", true); + } + + /* UserList::userJoinAudio tests */ + + [Test] + public function userJoinAudio_setsPropertiesOnUser_1():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.userJoinAudio("123", "voice_id", true, false, false); + + assertThat(newUser.voiceJoined, equalTo(true)); + assertThat(newUser.voiceUserId, equalTo("voice_id")); + assertThat(newUser.muted, equalTo(true)); + assertThat(newUser.talking, equalTo(false)); + assertThat(newUser.locked, equalTo(false)); + } + + [Test] + public function userJoinAudio_setsPropertiesOnUser_2():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.userJoinAudio("123", "voice_id", false, true, false); + + assertThat(newUser.voiceJoined, equalTo(true)); + assertThat(newUser.voiceUserId, equalTo("voice_id")); + assertThat(newUser.muted, equalTo(false)); + assertThat(newUser.talking, equalTo(true)); + assertThat(newUser.locked, equalTo(false)); + } + + [Test (async)] + public function userJoinAudio_dispatchesJoinAudioSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.userChangeSignal.add(joinAudioSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.JOIN_AUDIO, 5000); + instance.userJoinAudio("123", "voice_id", false, false, false); + } + + private function joinAudioSignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUser("123"))); + assertThat(change, equalTo(UserList.JOIN_AUDIO)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.JOIN_AUDIO)); + } + + [Test] + public function userJoinAudio_invalidUserID_doesntBreak():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.removeUser("123"); + instance.userJoinAudio("123", "voice_id", false, false, false); + instance.userJoinAudio("invalid_id", "voice_id", false, false, false); + } + + /* UserList::userLeaveAudio tests */ + + [Test] + public function userLeaveAudio_setsVoiceJoinedPropertyToFalse():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.voiceJoined = true; + instance.addUser(newUser); + instance.userLeaveAudio("123"); + assertThat(newUser.voiceJoined, equalTo(false)); + } + + [Test (async)] + public function userLeaveAudio_dispatchesJoinAudioSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.voiceJoined = true; + instance.addUser(newUser); + instance.userChangeSignal.add(leaveAudioSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.LEAVE_AUDIO); + instance.userLeaveAudio("123"); + } + + private function leaveAudioSignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUser("123"))); + assertThat(change, equalTo(UserList.JOIN_AUDIO)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.LEAVE_AUDIO)); + } + + [Test] + public function userLeaveAudio_invalidUserID_doesntBreak():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.removeUser("123"); + instance.userLeaveAudio("123"); + instance.userLeaveAudio("invalid_id"); + } + + /* UserList::userMuteChange tests */ + + [Test] + public function userMuteChange_setsMuteProperty():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.voiceUserId = "voice_id"; + newUser.muted = true; + instance.addUser(newUser); + instance.userMuteChange("voice_id", false); + assertThat(newUser.muted, equalTo(false)); + } + + [Test] + public function userMuteChange_userMutedWhileTalking_setsTalkingToFalse():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.voiceUserId = "voice_id"; + newUser.muted = false; + newUser.talking = true; + instance.addUser(newUser); + instance.userMuteChange("voice_id", true); + assertThat(newUser.muted, equalTo(true)); + assertThat(newUser.talking, equalTo(false)); + } + + [Test (async)] + public function userMuteChange_dispatchesMuteSignal():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.voiceUserId = "voice_id"; + instance.addUser(newUser); + instance.userChangeSignal.add(muteSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.MUTE_CHANGE, 5000); + instance.userMuteChange("voice_id", true); + } + + private function muteSignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUser("123"))); + assertThat(change, equalTo(UserList.MUTE)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.MUTE_CHANGE)); + } + + [Test] + public function userMuteChange_invalidUserID_doesntBreak():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.voiceUserId = "voice_id"; + instance.addUser(newUser); + instance.removeUser("123"); + instance.userMuteChange("voice_id", true); + instance.userMuteChange("invalid_voice_id", true); + } + + /* UserList::userTalkingChange tests */ + + [Test] + public function userTalkingChange_setsTalkingProperty():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.voiceUserId = "voice_id"; + newUser.talking = false; + instance.addUser(newUser); + instance.userTalkingChange("voice_id", true); + assertThat(newUser.talking, equalTo(true)); + } + + [Test] + public function userTalkingChange_invalidUserID_doesntBreak():void + { + var newUser:User = createNewUser("123", "ABC"); + newUser.voiceUserId = "voice_id"; + instance.addUser(newUser); + instance.removeUser("123"); + instance.userTalkingChange("voice_id", true); + instance.userTalkingChange("invalid_voice_id", true); + } + + /* UserList::listenOnlyChange tests */ + + [Test] + public function listenOnlyChange_setsListenOnlyProperty():void + { + var newUser1:User = createNewUser("111", "AAA"); + newUser1.listenOnly = true; + + var newUser2:User = createNewUser("222", "BBB"); + newUser2.listenOnly = false; + + instance.addUser(newUser1); + instance.addUser(newUser2); + instance.listenOnlyChange("111", false); + instance.listenOnlyChange("222", true); + + assertThat(newUser1.listenOnly, equalTo(false)); + assertThat(newUser2.listenOnly, equalTo(true)); + } + + [Test (async)] + public function listenOnlyChange_dispatcherListOnlySignal():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.userChangeSignal.add(listenOnlyChangeSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserListTestHelperEvents.LISTEN_ONLY_CHANGE, 5000); + instance.listenOnlyChange("123", true); + } + + private function listenOnlyChangeSignalChecker(user:User, change:int):void + { + assertThat(user, equalTo(instance.getUser("123"))); + assertThat(change, equalTo(UserList.LISTEN_ONLY)); + dispatcher.dispatchEvent(new UserListTestHelperEvents(UserListTestHelperEvents.LISTEN_ONLY_CHANGE)); + } + + [Test] + public function listenOnlyChange_invalidUserID_doesntBreak():void + { + var newUser:User = createNewUser("123", "ABC"); + instance.addUser(newUser); + instance.removeUser("123"); + instance.listenOnlyChange("123", true); + instance.listenOnlyChange("invalid_id", true); + } + +/* [Test] + public function instantiated_isInstanceOfUserList():void + { + assertTrue("instance is UserList", instance is UserList); + } + + [Test] + public function listenerRemoved_numberOfListenersIsNull():void + { + // Arrange + instance.userChangeSignal.add(listener); + + // Act + instance.userChangeSignal.remove(listener); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.userChangeSignal.numListeners == 0); + } + + [Test] + public function listenerAdded_numberOfListenersIsNotNull():void + { + // Act + instance.userChangeSignal.add(listener); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.userChangeSignal.numListeners != 0); + } + + private function listener(e : Event) : void + { + }*/ + + [After] + public function tearDown():void + { + instance = null; + } + + /* Helper function to generate fake user instances. Some properties are already defaulted accordingly in the + * definition of the User class, but to be consistent, they are all set here. */ + private function createNewUser(userID:String, name:String):User + { + var newUser:User = new User(); + + newUser.userID = userID; + newUser.name = name; + + newUser.hasStream = false; + newUser.isLeavingFlag = false; + newUser.listenOnly = false; + newUser.locked = false; + newUser.me = false; + newUser.muted = false; + newUser.phoneUser = false; + newUser.presenter = false; + newUser.raiseHand = false; + newUser.role = User.VIEWER; + newUser.streamName = ""; + newUser.talking = false; + newUser.voiceJoined = false; + newUser.voiceUserId = ""; + + return newUser; + } + } +} diff --git a/tests/org/bigbluebutton/model/UserListTestHelperEvents.as b/tests/org/bigbluebutton/model/UserListTestHelperEvents.as new file mode 100644 index 0000000..4e8ebb8 --- /dev/null +++ b/tests/org/bigbluebutton/model/UserListTestHelperEvents.as @@ -0,0 +1,28 @@ +package org.bigbluebutton.model +{ + import flash.events.Event; + + public class UserListTestHelperEvents extends Event + { + public static const HAS_STREAM:String = "HAS_STREAM"; + public static const PRESENTER:String = "PRESENTER"; + public static const RAISE_HAND:String = "RAISE_HAND"; + public static const LISTEN_ONLY:String = "LISTEN_ONLY"; + public static const USER_ADDED:String = "USER_ADDED"; + public static const USER_REMOVED:String = "USER_REMOVED"; + public static const REMOVED_PRESENTER:String = "REMOVED_PRESENTER"; + public static const ASSIGN_PRESENTER:String = "ASSIGN_PRESENTER"; + public static const STREAM_CHANGE:String = "STREAM_CHANGE_HAS_STREAM"; + public static const RAISE_HAND_CHANGE:String = "RAISE_HAND_CHANGE"; + public static const JOIN_AUDIO:String = "JOIN_AUDIO"; + public static const LEAVE_AUDIO:String = "LEAVE_AUDIO"; + public static const MUTE_CHANGE:String = "MUTE_CHANGE"; + public static const LISTEN_ONLY_CHANGE:String = "LISTEN_ONLY_CHANGE"; + + + public function UserListTestHelperEvents(type:String):void + { + super(type); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/UserSessionTest.as b/tests/org/bigbluebutton/model/UserSessionTest.as new file mode 100644 index 0000000..1ebecf7 --- /dev/null +++ b/tests/org/bigbluebutton/model/UserSessionTest.as @@ -0,0 +1,33 @@ +package org.bigbluebutton.model +{ + import org.flexunit.asserts.assertTrue; + + public class UserSessionTest + { + protected var instance:UserSession; + + [Before] + public function setUp():void + { + instance = new UserSession(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUserSession():void + { + assertTrue("instance is UserSession", instance is UserSession); + } + + [Test] + public function instantiated_implementsIUserSession():void + { + assertTrue("instance implements IUserSession interface", instance is IUserSession); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/UserSettingsTests.as b/tests/org/bigbluebutton/model/UserSettingsTests.as deleted file mode 100644 index 7910836..0000000 --- a/tests/org/bigbluebutton/model/UserSettingsTests.as +++ /dev/null @@ -1,16 +0,0 @@ -package org.bigbluebutton.model -{ - import flash.events.TimerEvent; - import flash.utils.Timer; - - public class UserSettingsTests - { - /** - * Creates the test subject with its dependencies. - */ - private function createModel(): UserSettings - { - return new UserSettings(); - } - } -} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/UserTest.as b/tests/org/bigbluebutton/model/UserTest.as new file mode 100644 index 0000000..f3e46b2 --- /dev/null +++ b/tests/org/bigbluebutton/model/UserTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.model +{ + import org.flexunit.asserts.assertTrue; + + public class UserTest + { + protected var instance:User; + + [Before] + public function setUp():void + { + instance = new User(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUser():void + { + assertTrue("instance is User", instance is User); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/UserUISessionTest.as b/tests/org/bigbluebutton/model/UserUISessionTest.as new file mode 100644 index 0000000..ecd2896 --- /dev/null +++ b/tests/org/bigbluebutton/model/UserUISessionTest.as @@ -0,0 +1,213 @@ +package org.bigbluebutton.model +{ + import flash.events.EventDispatcher; + + import flashx.textLayout.debug.assert; + + import mockolate.runner.MockolateRule; + + import org.bigbluebutton.view.navigation.pages.TransitionAnimationENUM; + import org.flexunit.asserts.assertTrue; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.hamcrest.object.equalTo; + + public class UserUISessionTest + { + protected var instance:UserUISession; + + /* Event dispatcher for the helper event types, defined in the 'UserListTestHelperEvents' class. They are used + * to check that signals are dispatched, and with the right arguments, by putting listener methods on the + * signals that dispatch an event if all goes well. If the signal is not dispatched, the method will not be + * invoked, and the test will timeout waiting for the event. If they are called, but with the wrong arguments, + * then the assertions within the listener method will fail. */ + public var dispatcher:EventDispatcher = new EventDispatcher(); + + [Before] + public function setUp():void + { + instance = new UserUISession(); + instance.pushPage("page 1", "details 1", TransitionAnimationENUM.APPEAR); + instance.pushPage("page 2", "details 2", TransitionAnimationENUM.SLIDE_LEFT); + instance.pushPage("page 3", "details 3", TransitionAnimationENUM.SLIDE_RIGHT); + } + + /* UserUISession::currentPage getter tests */ + + [Test] + public function currentPage_returnsCurrentPageName():void + { + var currPage:String = instance.currentPage; + assertThat(currPage, equalTo("page 3")); + } + + [Test] + public function currentPage_listPagesIsEmpty_returnsNull():void + { + instance.popPage(); + instance.popPage(); + instance.popPage(); + + var currPage:String = instance.currentPage; + assertThat(currPage, equalTo(null)); + } + + /* UserUISession::lastPage getter tests */ + + [Test] + public function lastPage_returnsLastPageName():void + { + var lastPage:String = instance.lastPage; + assertThat(lastPage, equalTo("page 2")); + } + + [Test] + public function lastPage_listPagesHasOnlyOnePage_returnsNull():void + { + instance.popPage(); + instance.popPage(); + + var lastPage:String = instance.lastPage; + assertThat(lastPage, equalTo(null)); + } + + [Test] + public function lastPage_listPagesIsEmpty_returnsNull():void + { + instance.popPage(); + instance.popPage(); + instance.popPage(); + + var lastPage:String = instance.lastPage; + assertThat(lastPage, equalTo(null)); + } + + /* UserUISession::pushPage tests */ + + [Test] + public function pushPage_currentPageIsThatPage():void + { + instance.pushPage("new page", "new page details", TransitionAnimationENUM.APPEAR); + assertThat(instance.currentPage, equalTo("new page")); + assertThat(instance.lastPage, equalTo("page 3")); + } + + [Test (async)] + public function pushPage_pageAdded_dispatchesPageChangedSignal():void + { + instance.pageChangedSignal.add(pushPageSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserUISessionTestHelperEvents.PUSH_PAGE_SIGNAL_CORRECT, 5000); + instance.pushPage("new page", "new page details", TransitionAnimationENUM.SLIDE_LEFT); + } + + private function pushPageSignalChecker(pageName:String, removeView:Boolean, animation:int):void + { + assertThat(pageName, equalTo("new page")); + assertThat(removeView, equalTo(false)); + assertThat(animation, equalTo(TransitionAnimationENUM.SLIDE_LEFT)); + dispatcher.dispatchEvent(new UserUISessionTestHelperEvents(UserUISessionTestHelperEvents.PUSH_PAGE_SIGNAL_CORRECT)); + } + + [Test] + public function pushPage_pageAddedIsCurrentPage_pageNotAddedAgain():void + { + instance.pushPage("double page", "double page details"); + instance.pushPage("double page", "double page details"); + assertThat(instance.lastPage, equalTo("page 3")); + } + + /* UserUISession::popPage tests */ + + [Test] + public function popPage_removesPageFromPageList():void + { + instance.popPage(); + assertThat(instance.currentPage, equalTo("page 2")); + instance.popPage(); + assertThat(instance.currentPage, equalTo("page 1")); + instance.popPage(); + assertThat(instance.currentPage, equalTo(null)); + } + + [Test (async)] + public function popPage_removesPage_dispatchesPageChangedSignal():void + { + instance.pageChangedSignal.add(popPageSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserUISessionTestHelperEvents.POP_PAGE_SIGNAL_CORRECT, 5000); + instance.popPage(TransitionAnimationENUM.SLIDE_LEFT); + } + + private function popPageSignalChecker(pageName:String, removeView:Boolean, animation:int):void + { + assertThat(pageName, equalTo("page 2")); + assertThat(removeView, equalTo(true)); + assertThat(animation, equalTo(TransitionAnimationENUM.SLIDE_LEFT)); + dispatcher.dispatchEvent(new UserUISessionTestHelperEvents(UserUISessionTestHelperEvents.POP_PAGE_SIGNAL_CORRECT)); + } + + [Test] + public function popPage_pageListIsEmpty_doesNothing():void + { + instance.popPage(); + instance.popPage(); + instance.popPage(); + assertThat(instance.currentPage, equalTo(null)); + + instance.popPage(); + assertThat(instance.currentPage, equalTo(null)); + } + + /* UserUISession::currentPageDetails (getter) tests */ + + [Test] + public function currentPageDetails_returnsDetails():void + { + instance.pushPage("new page", "new page details"); + assertThat(instance.currentPageDetails, equalTo("new page details")); + } + + [Test] + public function currentPageDetails_pageListIsEmpty_returnsNull():void + { + instance.popPage(); + instance.popPage(); + instance.popPage(); + assertThat(instance.currentPageDetails, equalTo(null)); + } + + /* UserUISession::loading (setter) tests */ + + [Test (async)] + public function loading_dispatchedLoadingSignal():void + { + instance.loadingSignal.add(loadingSignalChecker); + Async.proceedOnEvent(this, dispatcher, UserUISessionTestHelperEvents.LOADING_SIGNAL_CORRECT, 5000); + instance.loading = true; + } + + private function loadingSignalChecker(loading:Boolean):void + { + assertThat(loading, equalTo(true)); + dispatcher.dispatchEvent(new UserUISessionTestHelperEvents(UserUISessionTestHelperEvents.LOADING_SIGNAL_CORRECT)); + } + + + [After] + public function tearDown():void + { + instance = null; + } + + /*[Test] + public function instantiated_isInstanceOfUserUISession():void + { + assertTrue("instance is UserSession", instance is UserUISession); + } + + [Test] + public function instantiated_implementsIUserUISession():void + { + assertTrue("instance implements IUserUISession interface", instance is IUserUISession); + }*/ + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/UserUISessionTestHelperEvents.as b/tests/org/bigbluebutton/model/UserUISessionTestHelperEvents.as new file mode 100644 index 0000000..5910166 --- /dev/null +++ b/tests/org/bigbluebutton/model/UserUISessionTestHelperEvents.as @@ -0,0 +1,16 @@ +package org.bigbluebutton.model +{ + import flash.events.Event; + + public class UserUISessionTestHelperEvents extends Event + { + public static const PUSH_PAGE_SIGNAL_CORRECT:String = "PUSH_PAGE_SIGNAL_CORRECT"; + public static const POP_PAGE_SIGNAL_CORRECT:String = "POP_PAGE_SIGNAL_CORRECT"; + public static const LOADING_SIGNAL_CORRECT:String = "LOADING_SIGNAL_CORRECT"; + + public function UserUISessionTestHelperEvents(type:String):void + { + super(type); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/chat/ChatMessageTest.as b/tests/org/bigbluebutton/model/chat/ChatMessageTest.as new file mode 100644 index 0000000..f39b76c --- /dev/null +++ b/tests/org/bigbluebutton/model/chat/ChatMessageTest.as @@ -0,0 +1,51 @@ +package org.bigbluebutton.model.chat +{ + import mockolate.runner.MockolateRule; + + import org.flexunit.asserts.assertTrue; + import org.hamcrest.assertThat; + import org.hamcrest.object.equalTo; + + public class ChatMessageTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + protected var instance:ChatMessage; + + [Before] + public function setUp():void + { + instance = new ChatMessage(); + } + + /* ChatMessage::toString tests */ + + /* The behaviour of the ChatMessage::toString should be to strip XML tags from the chat message */ + [Test] + public function toString_containsXMLTags_stripsTags():void + { + instance.name = "some-guy's-name"; + instance.time = "some-time"; + instance.translatedText = "this is a chat message!!"; + + var noTagsString:String = instance.toString(); + + /* toString() also adds stuff to the beginning and end of the translated text, which is why the safe string + * has the value that is does. The important part, is that the tags get stripped. */ + assertThat(noTagsString, equalTo("Chat message some-guy's-name said this is a chat message!! at some-time")); + } + + [After] + public function tearDown():void + { + instance = null; + } +/* + [Test] + public function instantiated_isInstanceOfChatMessage():void + { + assertTrue("instance is ChatMessage", instance is ChatMessage); + }*/ + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/chat/ChatMessageVOTest.as b/tests/org/bigbluebutton/model/chat/ChatMessageVOTest.as new file mode 100644 index 0000000..7afe06e --- /dev/null +++ b/tests/org/bigbluebutton/model/chat/ChatMessageVOTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.model.chat +{ + import org.flexunit.asserts.assertTrue; + + public class ChatMessageVOTest + { + protected var instance:ChatMessageVO; + + [Before] + public function setUp():void + { + instance = new ChatMessageVO(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatMessageVO():void + { + assertTrue("instance is ChatMessageVO", instance is ChatMessageVO); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/chat/ChatMessagesSessionTest.as b/tests/org/bigbluebutton/model/chat/ChatMessagesSessionTest.as new file mode 100644 index 0000000..7e75e47 --- /dev/null +++ b/tests/org/bigbluebutton/model/chat/ChatMessagesSessionTest.as @@ -0,0 +1,161 @@ +package org.bigbluebutton.model.chat +{ + import flash.events.Event; + import flash.events.EventDispatcher; + + import mockolate.runner.MockolateRule; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.hamcrest.object.equalTo; + + public class ChatMessagesSessionTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + protected var instance:ChatMessagesSession; + + /* Event dispatcher for the helper event types, defined in the 'UserListTestHelperEvents' class. They are used + * to check that signals are dispatched, and with the right arguments, by putting listener methods on the + * signals that dispatch an event if all goes well. If the signal is not dispatched, the method will not be + * invoked, and the test will timeout waiting for the event. If they are called, but with the wrong arguments, + * then the assertions within the listener method will fail. */ + private var dispatcher:EventDispatcher = new EventDispatcher(); + + [Before] + public function setUp():void + { + instance = new ChatMessagesSession(); + } + + /* ChatMessagesSession::addUserToPrivateMessages tests */ + + [Test] + public function addUserToPrivateMessages_userAddedToPrivateChat():void + { + instance.addUserToPrivateMessages("123", "ABC"); + var pm:PrivateChatMessage = instance.privateChats.getItemAt(0) as PrivateChatMessage; + assertThat(pm.userID, equalTo("123")); + assertThat(pm.userName, equalTo("ABC")); + } + + /* ChatMessagesSession::newPrivateMessage tests */ + + [Test] + public function newPrivateMessage_fromNewUser_newUserAddedtoPrivateChatsList():void + { + assertThat(instance.privateChats.length, equalTo(0)); + var message:ChatMessageVO = createChatMessageVO("chat message text"); + instance.newPrivateMessage("123", "ABC", message); + assertThat(instance.privateChats.length, equalTo(1)); + + var pm:PrivateChatMessage = instance.privateChats.getItemAt(0) as PrivateChatMessage; + assertThat(pm.userID, equalTo("123")); + assertThat(pm.userName, equalTo("ABC")); + } + + [Test] + public function newPrivateMessage_fromNotNewUser_ChatMessagesFromThatUserAreUpdated():void + { + var message1:ChatMessageVO = createChatMessageVO("chat message text 1"); + instance.newPrivateMessage("123", "ABC", message1); + var message2:ChatMessageVO = createChatMessageVO("chat message text 2"); + instance.newPrivateMessage("123", "ABC", message2); + var message3:ChatMessageVO = createChatMessageVO("chat message text 3"); + instance.newPrivateMessage("123", "ABC", message3); + + assertThat(instance.privateChats.length, equalTo(1)); + + var pm:PrivateChatMessage = instance.privateChats.getItemAt(0) as PrivateChatMessage; + var cm:ChatMessages = pm.privateChat as ChatMessages; + assertThat(cm.messages.getItemAt(0).senderText, equalTo("chat message text 1")); + assertThat(cm.messages.getItemAt(1).senderText, equalTo("chat message text 2")); + assertThat(cm.messages.getItemAt(2).senderText, equalTo("chat message text 3")); + } + + [Test (async)] + public function newPrivateMessage_dispatchesChatMessageChangeSignal():void + { + var message:ChatMessageVO = createChatMessageVO("chat message text"); + instance.chatMessageChangeSignal.add(chatMessageChangeSignalChecker); + Async.proceedOnEvent(this, dispatcher, ChatMessagesSessionTestHelperEvents.CHAT_MESSAGE_CHANGE_SIGNAL_CORRECT, 5000); + instance.newPrivateMessage("123", "ABC", message); + } + + private function chatMessageChangeSignalChecker(userID:String):void + { + assertThat(userID, equalTo("123")); + dispatcher.dispatchEvent(new ChatMessagesSessionTestHelperEvents( + ChatMessagesSessionTestHelperEvents.CHAT_MESSAGE_CHANGE_SIGNAL_CORRECT)); + } + + /* ChatMessagesSession::getPrivateMessages tests */ + + [Test] + public function getPrivateChatMessages_userInList_returnsListOfChatMessagesFromThatUser():void + { + var message1:ChatMessageVO = createChatMessageVO("chat message text 1"); + instance.newPrivateMessage("123", "ABC", message1); + var message2:ChatMessageVO = createChatMessageVO("chat message text 2"); + instance.newPrivateMessage("123", "ABC", message2); + var message3:ChatMessageVO = createChatMessageVO("chat message text 3"); + instance.newPrivateMessage("123", "ABC", message3); + + var pm:PrivateChatMessage = instance.getPrivateMessages("123", "ABC"); + var cm:ChatMessages = pm.privateChat as ChatMessages; + assertThat(cm.messages.getItemAt(0).senderText, equalTo("chat message text 1")); + assertThat(cm.messages.getItemAt(1).senderText, equalTo("chat message text 2")); + assertThat(cm.messages.getItemAt(2).senderText, equalTo("chat message text 3")); + } + + [Test] + public function getPrivateChatMessages_userNotInList_userAddedWithEmptyMessageList():void + { + assertThat(instance.privateChats.length, equalTo(0)); + var pm:PrivateChatMessage = instance.getPrivateMessages("123", "ABC"); + assertThat(instance.privateChats.length, equalTo(1)); + assertThat(pm.privateChat.messages.length, equalTo(0)); + } + + /* helpers */ + + private function createChatMessageVO(text:String):ChatMessageVO + { + var chatMessageVO:ChatMessageVO = new ChatMessageVO; + chatMessageVO.message = text; + + chatMessageVO.fromUserID = "sender ID"; + chatMessageVO.fromUsername = "sender name"; + chatMessageVO.toUserID = "receiver ID"; + chatMessageVO.toUsername = "receiver name"; + chatMessageVO.chatType = "public"; + chatMessageVO.fromColor = "0x000000"; + chatMessageVO.fromTime = 0; + chatMessageVO.fromLang = "language"; + chatMessageVO.fromTimezoneOffset = 0; + + return chatMessageVO; + } + + [After] + public function tearDown():void + { + instance = null; + } + + /* + [Test] + public function instantiated_isInstanceOfChatMessagesSession():void + { + assertTrue("instance is ChatMessagesSession", instance is ChatMessagesSession); + } + + [Test] + public function instantiated_implementsIChatMessagesSessionInterface():void + { + assertTrue("instance implements IChatMessagesSession interface", instance is IChatMessagesSession); + }*/ + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/chat/ChatMessagesSessionTestHelperEvents.as b/tests/org/bigbluebutton/model/chat/ChatMessagesSessionTestHelperEvents.as new file mode 100644 index 0000000..cfe06d6 --- /dev/null +++ b/tests/org/bigbluebutton/model/chat/ChatMessagesSessionTestHelperEvents.as @@ -0,0 +1,14 @@ +package org.bigbluebutton.model.chat +{ + import flash.events.Event; + + public class ChatMessagesSessionTestHelperEvents extends Event + { + public static const CHAT_MESSAGE_CHANGE_SIGNAL_CORRECT:String = "CHAT_MESSAGE_CHANGE_SIGNAL_CORRECT"; + + public function ChatMessagesSessionTestHelperEvents(type:String):void + { + super(type); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/chat/ChatMessagesTest.as b/tests/org/bigbluebutton/model/chat/ChatMessagesTest.as new file mode 100644 index 0000000..cd895c0 --- /dev/null +++ b/tests/org/bigbluebutton/model/chat/ChatMessagesTest.as @@ -0,0 +1,188 @@ +package org.bigbluebutton.model.chat +{ + import flash.events.EventDispatcher; + + import org.bigbluebutton.util.ChatUtil; + import org.flexunit.asserts.assertTrue; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.hamcrest.object.equalTo; + + public class ChatMessagesTest + { + protected var instance:ChatMessages; + + /* Event dispatcher for the helper event types, defined in the 'UserListTestHelperEvents' class. They are used + * to check that signals are dispatched, and with the right arguments, by putting listener methods on the + * signals that dispatch an event if all goes well. If the signal is not dispatched, the method will not be + * invoked, and the test will timeout waiting for the event. If they are called, but with the wrong arguments, + * then the assertions within the listener method will fail. */ + public var dispatcher:EventDispatcher = new EventDispatcher(); + + [Before] + public function setUp():void + { + instance = new ChatMessages(); + } + + /* ChatMessages::numMessages tests */ + + [Test] + public function numMessages_returnsNumberOfMessages():void + { + assertThat(instance.numMessages(), equalTo(0)); + instance.newChatMessage(createChatMessageVO("message 1")); + instance.newChatMessage(createChatMessageVO("message 2")); + instance.newChatMessage(createChatMessageVO("message 3")); + assertThat(instance.numMessages(), equalTo(3)); + } + + /* ChatMessages::newChatMessage tests */ + + [Test] + public function newChatMessage_addsMessageToMessagesList():void + { + var message:ChatMessageVO = createChatMessageVO("chat message text"); + instance.newChatMessage(message); + assertThat(instance.numMessages(), equalTo(1)); + + var m:ChatMessage = instance.messages.getItemAt(0) as ChatMessage; + + assertThat(m.senderId , equalTo(message.fromUserID)); + + assertThat(m.senderLanguage , equalTo(message.fromLang)); + assertThat(m.receiverLanguage, equalTo(ChatUtil.getUserLang())); + + assertThat(m.translatedText, equalTo(message.message)); + assertThat(m.senderText, equalTo(message.message)); + + assertThat(m.name , equalTo(message.fromUsername)); + assertThat(m.senderColor, equalTo(message.fromColor)); + assertThat(m.translatedColor, equalTo(uint(message.fromColor))); + + assertThat(m.fromTime , equalTo(message.fromTime)); + assertThat(m.fromTimezoneOffset , equalTo(message.fromTimezoneOffset)); + } + + [Test] + public function newChatMessage_newMessageAddedWithTime_timeStampCorrect():void + { + var message1:ChatMessageVO = createChatMessageVO("chat message text"); + var message2:ChatMessageVO = createChatMessageVO("chat message text"); + + /* The number in 'fromTime' field is to represent the number of milliseconds since January 1, 1970 */ + message1.fromTime = 1234; + message2.fromTime = 123456789101112; + + instance.newChatMessage(message1); + instance.newChatMessage(message2); + + var m1:ChatMessage = instance.messages.getItemAt(0) as ChatMessage; + var m2:ChatMessage = instance.messages.getItemAt(1) as ChatMessage; + + /* Verifies the format of the time stamp string. Should be "HOUR:MINUTE" */ + var testDate1:Date = new Date(); + testDate1.setTime(1234); + assertThat(m1.time, equalTo(ChatUtil.getHours(testDate1) + ":" + ChatUtil.getMinutes(testDate1))); + + var testDate2:Date = new Date(); + testDate2.setTime(123456789101112); + assertThat(m2.time, equalTo(ChatUtil.getHours(testDate2) + ":" + ChatUtil.getMinutes(testDate2))); + } + + [Test (async)] + public function newChatMessage_dispatchesChatMessageChangeSignal():void + { + var message:ChatMessageVO = createChatMessageVO("chat message text"); + message.fromUserID = "123"; + instance.chatMessageChangeSignal.add(chatMessageChangeSignalChecker); + Async.proceedOnEvent(this, dispatcher, ChatMessagesTestHelperEvents.CHAT_MESSAGES_SIGNAL_CORRECT, 5000); + instance.newChatMessage(message); + } + + private function chatMessageChangeSignalChecker(userID:String):void + { + assertThat(userID, equalTo("123")); + dispatcher.dispatchEvent(new ChatMessagesTestHelperEvents(ChatMessagesTestHelperEvents.CHAT_MESSAGES_SIGNAL_CORRECT)); + } + + [Test] + public function newChatMessage_chatMessageAdded_lastSenderIdSet():void + { + var message1:ChatMessageVO = createChatMessageVO("chat message text"); + message1.fromUserID = "AAA"; + instance.newChatMessage(message1); + + var message2:ChatMessageVO = createChatMessageVO("chat message text"); + message2.fromUserID = "BBB"; + instance.newChatMessage(message2); + + var m:ChatMessage = instance.messages.getItemAt(1) as ChatMessage; + assertThat(m.lastSenderId, equalTo("AAA")); + } + + [Test] + public function newChatMessage_firstChatMessage_lastSenderIdIsEmptyString():void + { + var message:ChatMessageVO = createChatMessageVO("chat message text"); + instance.newChatMessage(message); + var m:ChatMessage = instance.messages.getItemAt(0) as ChatMessage; + assertThat(m.lastSenderId, equalTo("")); + } + + /* ChatMessages::getAllMessageAsString tests */ + + /* I don't think this is used anywhere... maybe remove this method? What is its purpose?? */ + + + + /* ChatMessages::resetNewMessages tests */ + + [Test (async)] + public function resetNewMessages_dispatchesChatMessageChangeSignal():void + { + instance.chatMessageChangeSignal.add(chatMessageChangeOnResetSignalChecker); + Async.proceedOnEvent(this, dispatcher, ChatMessagesTestHelperEvents.CHAT_MESSAGES_RESET_SIGNAL_CORRECT, 5000); + instance.resetNewMessages(); + } + + private function chatMessageChangeOnResetSignalChecker(userID:String):void + { + assertThat(userID, equalTo(null)); + assertThat(instance.newMessages, equalTo(0)); + dispatcher.dispatchEvent(new ChatMessagesTestHelperEvents(ChatMessagesTestHelperEvents.CHAT_MESSAGES_RESET_SIGNAL_CORRECT)); + } + + /* helpers */ + + private function createChatMessageVO(text:String):ChatMessageVO + { + var chatMessageVO:ChatMessageVO = new ChatMessageVO; + chatMessageVO.message = text; + + chatMessageVO.fromUserID = "sender ID"; + chatMessageVO.fromUsername = "sender name"; + chatMessageVO.toUserID = "receiver ID"; + chatMessageVO.toUsername = "receiver name"; + chatMessageVO.chatType = "public"; + chatMessageVO.fromColor = "0x000000"; + chatMessageVO.fromTime = 0; + chatMessageVO.fromLang = "language"; + chatMessageVO.fromTimezoneOffset = 0; + + return chatMessageVO; + } + + [After] + public function tearDown():void + { + instance = null; + } + +/* [Test] + public function instantiated_isInstanceOfChatMessages():void + { + assertTrue("instance is ChatMessages", instance is ChatMessages); + }*/ + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/chat/ChatMessagesTestHelperEvents.as b/tests/org/bigbluebutton/model/chat/ChatMessagesTestHelperEvents.as new file mode 100644 index 0000000..da3bf99 --- /dev/null +++ b/tests/org/bigbluebutton/model/chat/ChatMessagesTestHelperEvents.as @@ -0,0 +1,15 @@ +package org.bigbluebutton.model.chat +{ + import flash.events.Event; + + public class ChatMessagesTestHelperEvents extends Event + { + public static const CHAT_MESSAGES_SIGNAL_CORRECT:String = "CHAT_MESSAGES_SIGNAL_CORRECT"; + public static const CHAT_MESSAGES_RESET_SIGNAL_CORRECT:String = "CHAT_MESSAGES_RESET_SIGNAL_CORRECT"; + + public function ChatMessagesTestHelperEvents(type:String):void + { + super(type); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/chat/IChatMessagesSessionTest.as b/tests/org/bigbluebutton/model/chat/IChatMessagesSessionTest.as new file mode 100644 index 0000000..2c959c8 --- /dev/null +++ b/tests/org/bigbluebutton/model/chat/IChatMessagesSessionTest.as @@ -0,0 +1,29 @@ +package org.bigbluebutton.model.chat +{ + import flash.utils.getQualifiedClassName; + + import org.flexunit.asserts.assertTrue; + + public class IChatMessagesSessionTest + { + protected var instance:IChatMessagesSession; + + [Before] + public function setUp():void + { + instance = new ChatMessagesSession(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIChatMessagesSession():void + { + assertTrue("instance is IChatMessagesSession", instance is IChatMessagesSession); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/chat/PrivateChatMessageTest.as b/tests/org/bigbluebutton/model/chat/PrivateChatMessageTest.as new file mode 100644 index 0000000..cdac55b --- /dev/null +++ b/tests/org/bigbluebutton/model/chat/PrivateChatMessageTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.model.chat +{ + import org.flexunit.asserts.assertTrue; + + public class PrivateChatMessageTest + { + protected var instance:PrivateChatMessage; + + [Before] + public function setUp():void + { + instance = new PrivateChatMessage(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPrivateChatMessage():void + { + assertTrue("instance is PrivateChatMessage", instance is PrivateChatMessage); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/chat/UserVOTest.as b/tests/org/bigbluebutton/model/chat/UserVOTest.as new file mode 100644 index 0000000..6db328c --- /dev/null +++ b/tests/org/bigbluebutton/model/chat/UserVOTest.as @@ -0,0 +1,28 @@ +package org.bigbluebutton.model.chat +{ + import org.flexunit.asserts.assertTrue; + + public class UserVOTest + { + protected var instance:UserVO; + + [Before] + public function setUp():void + { + // TODO : Provide valid constructor parameters relevant to the test + instance = new UserVO("testUsername", "testID"); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUserVO():void + { + assertTrue("instance is UserVO", instance is UserVO); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/presentation/PresentationListTest.as b/tests/org/bigbluebutton/model/presentation/PresentationListTest.as new file mode 100644 index 0000000..4ad2493 --- /dev/null +++ b/tests/org/bigbluebutton/model/presentation/PresentationListTest.as @@ -0,0 +1,122 @@ +package org.bigbluebutton.model.presentation +{ + import flash.events.EventDispatcher; + + import mockolate.runner.MockolateRule; + + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.hamcrest.object.equalTo; + import org.hamcrest.object.notNullValue; + + public class PresentationListTest + { + protected var instance:PresentationList; + + public var dispatcher:EventDispatcher = new EventDispatcher(); + + [Before] + public function setUp():void + { + instance = new PresentationList(); + var p:Presentation = instance.addPresentation("presentation name 1", 5, true); + instance.currentPresentation = p; + instance.addPresentation("presentation name 2", 10, false); + instance.addPresentation("presentation name 3", 20, false); + } + + /* PresentationList::addPresentation tests */ + + [Test] + public function addPresentation_createsAndAddsPresentationToPresentationList():void + { + instance.addPresentation("new presentation name", 15, false); + + var p:Presentation = instance.getPresentation("new presentation name"); + assertThat(p.fileName, equalTo("new presentation name")); + assertThat(p.size(), equalTo(15)); + assertThat(p.current, equalTo(false)); + } + + /* PresentationList::removePresentation tests */ + + [Test] + public function removePresentation_invalidPresentationName_doesntBreak():void + { + instance.removePresentation("invalid name"); + } + + [Test] + public function removePresentation_removesPresentationFromPresentationList():void + { + assertThat(instance.getPresentation("presentation name 1"), notNullValue()); + instance.removePresentation("presentation name 1"); + assertThat(instance.getPresentation("presentation name 1"), equalTo(null)); + } + + /* PresentationList::getPresentation tests */ + + [Test] + public function getPresentation_presentationInPresentationList_returnsPresentationReference():void + { + var p:Presentation = instance.getPresentation("presentation name 1"); + assertThat(p.fileName, equalTo("presentation name 1")); + assertThat(p.size(), equalTo(5)); + assertThat(p.current, equalTo(true)); + } + + [Test] + public function getPresentation_presentationNotInPresentationList_returnsNull():void + { + var p:Presentation = instance.getPresentation("invalid name"); + assertThat(p, equalTo(null)); + } + + /* PresentationList::currentPresentation tests */ + + [Test (async)] + public function currentPresentation_dispatcherPresentationChangeSignal():void + { + var p:Presentation = instance.getPresentation("presentation name 3"); + instance.presentationChangeSignal.add(presentationChangeSignalChecker); + Async.proceedOnEvent(this, dispatcher, PresentationListTestHelperEvents.PRESENTATION_CHANGE_SIGNAL, 5000); + instance.currentPresentation = p; + } + + private function presentationChangeSignalChecker():void + { + dispatcher.dispatchEvent(new PresentationListTestHelperEvents( + PresentationListTestHelperEvents.PRESENTATION_CHANGE_SIGNAL)); + } + + [Test] + public function currentPresentation_setCurrentPresentation():void + { + var p:Presentation = instance.getPresentation("presentation name 3"); + instance.currentPresentation = p; + assertThat(instance.currentPresentation, equalTo(p)); + } + + [Test] + public function currentPresentation_togglesCurrentPropertyOfOldAndNewCurrentPresentations():void + { + assertThat(instance.getPresentation("presentation name 1").current, equalTo(true)); + var p:Presentation = instance.getPresentation("presentation name 2"); + instance.currentPresentation = p; + assertThat(instance.getPresentation("presentation name 2").current, equalTo(true)); + assertThat(instance.getPresentation("presentation name 1").current, equalTo(false)); + } + + [After] + public function tearDown():void + { + instance = null; + } + +/* [Test] + public function instantiated_isInstanceOfPresentationList():void + { + assertTrue("instance is PresentationList", instance is PresentationList); + }*/ + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/presentation/PresentationListTestHelperEvents.as b/tests/org/bigbluebutton/model/presentation/PresentationListTestHelperEvents.as new file mode 100644 index 0000000..c40c6a1 --- /dev/null +++ b/tests/org/bigbluebutton/model/presentation/PresentationListTestHelperEvents.as @@ -0,0 +1,14 @@ +package org.bigbluebutton.model.presentation +{ + import flash.events.Event; + + public class PresentationListTestHelperEvents extends Event + { + public static const PRESENTATION_CHANGE_SIGNAL:String = "PRESENTATION_CHANGE_SIGNAL"; + + public function PresentationListTestHelperEvents(type:String):void + { + super(type); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/presentation/PresentationTest.as b/tests/org/bigbluebutton/model/presentation/PresentationTest.as new file mode 100644 index 0000000..59681ed --- /dev/null +++ b/tests/org/bigbluebutton/model/presentation/PresentationTest.as @@ -0,0 +1,182 @@ +package org.bigbluebutton.model.presentation +{ + import flash.events.EventDispatcher; + + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.hamcrest.object.equalTo; + + public class PresentationTest + { + protected var instance:Presentation; + + public var dispatcher:EventDispatcher = new EventDispatcher(); + + [Before] + public function setUp():void + { + instance = new Presentation("PresentationName", fakeChangeCurrentPresentationCallback, 10, true); + + var s1:Slide = createSlide(1); + s1.current = true; + var s2:Slide = createSlide(2); + var s3:Slide = createSlide(3); + + instance.add(s1); + instance.add(s2); + instance.add(s3); + } + + /* Presentation::add tests */ + + /* The slide numbers in the messages sent to the client uses a 1-base lists, whereas the vector in which the + * slides are stored uses 0-based lists. So the index in vector should be one less than the slide number. */ + [Test] + public function add_slideAddedToSlideListWithIndexOneLessThatSlideNumber():void + { + var s4:Slide = createSlide(4); + var s5:Slide = createSlide(5); + var s6:Slide = createSlide(6); + + instance.add(s4); + instance.add(s5); + instance.add(s6); + + assertThat(instance.slides[3], equalTo(s4)); + assertThat(instance.slides[4], equalTo(s5)); + assertThat(instance.slides[5], equalTo(s6)); + } + + [Test] + public function add_slideAddedIsCurrent_currentSlideNumFieldIsSet():void + { + var s4:Slide = createSlide(4); + var s5:Slide = createSlide(5); + var s6:Slide = createSlide(6); + s5.current = true; + + instance.add(s4); + instance.add(s5); + instance.add(s6); + + assertThat(instance.currentSlideNum, equalTo(4)); /* Not 5 !! */ + } + + /* Presentation::getSlideAt tests */ + + [Test] + public function getSlideAt_returnsSlideAtThatIndex():void + { + assertThat(instance.getSlideAt(0).slideURI, equalTo("slideURI1")); + assertThat(instance.getSlideAt(1).slideURI, equalTo("slideURI2")); + assertThat(instance.getSlideAt(2).slideURI, equalTo("slideURI3")); + + var s4:Slide = createSlide(4); + instance.add(s4); + assertThat(instance.getSlideAt(3), equalTo(s4)); + } + + [Test] + public function getSlideAt_calledWithOutOfBoundsNumber_returnsNull():void + { + assertThat(instance.getSlideAt(3), equalTo(null)); + assertThat(instance.getSlideAt(100), equalTo(null)); + } + + /* Presentation::show tests */ + + [Test (async)] + public function show_dispatchesSlideChangeSignal():void + { + instance.slideChangeSignal.add(slideChangeSignalDispatchedFromShowChecker); + Async.proceedOnEvent(this, dispatcher, PresentationTestHelperEvents.SLIDE_CHANGE_SIGNAL_FROM_SHOW_CORRECT, 5000); + instance.show(); + } + + private function slideChangeSignalDispatchedFromShowChecker():void + { + dispatcher.dispatchEvent(new PresentationTestHelperEvents( + PresentationTestHelperEvents.SLIDE_CHANGE_SIGNAL_FROM_SHOW_CORRECT)); + } + + /* The callback is used to change presentations. The way the application is structured, it is a reference + * to PresentationList::changeCurrentPresentation, a wrapper for the PresentationList::currentPresentation + * setter. The reference to the function would normally be passed to the Presentation constructor by the + * PresentationList, which instantiates each Presentation. In this test, the reference passed is a reference + * to the 'fakeChangeCurrentPresentationCallback' helper defined below. */ + [Test (async)] + public function show_invokesCallBackWithSelfAsArgument():void + { + Async.proceedOnEvent(this, dispatcher, PresentationTestHelperEvents.CHANGE_PRESENTATION_CALLBACK_CALLED, 5000); + instance.show(); + } + + private function fakeChangeCurrentPresentationCallback(p:Presentation):void + { + assertThat(p, equalTo(instance)); + dispatcher.dispatchEvent(new PresentationTestHelperEvents( + PresentationTestHelperEvents.CHANGE_PRESENTATION_CALLBACK_CALLED)); + } + + /* Presentation::currentSlideNum tests */ + + [Test (async)] + public function currentSlideNum_dispatchesSlideChangeSignal():void + { + instance.slideChangeSignal.add(slideChangeSignalDispatchedFromCurrentSlideNumChecker); + Async.proceedOnEvent(this, dispatcher, + PresentationTestHelperEvents.SLIDE_CHANGE_SIGNAL_FROM_CURRENT_SLIDE_NUM_CORRECT, 5000); + + instance.currentSlideNum = 3; + } + + private function slideChangeSignalDispatchedFromCurrentSlideNumChecker():void + { + dispatcher.dispatchEvent(new PresentationTestHelperEvents( + PresentationTestHelperEvents.SLIDE_CHANGE_SIGNAL_FROM_CURRENT_SLIDE_NUM_CORRECT)); + } + + /* The slide numbers in the messages sent to the client uses a 1-base lists, whereas the vector in which the + * slides are stored uses 0-based lists. So the 'Presentation' class's field that stores this number should be + * one less than the actual slide number. */ + [Test] + public function currentSlideNum_setsCurrentSlideNumber():void + { + instance.currentSlideNum = 3; + assertThat(instance.currentSlideNum, equalTo(2)); + instance.currentSlideNum = 1; + assertThat(instance.currentSlideNum, equalTo(0)); + } + + [Test] + public function currentSlideNum_togglesCurrentPropertyOfOldAndNewCurrentSlides():void + { + instance.currentSlideNum = 3; + assertThat(instance.currentSlideNum, equalTo(2)); + + instance.currentSlideNum = 1; + /* Make sure old current slides 'current' field is set back to false: */ + assertThat(instance.getSlideAt(2).current, equalTo(false)); + } + + /* helpers */ + + private function createSlide(slideNumber:Number):Slide + { + return new Slide(slideNumber, "slideURI" + slideNumber, + "thumbURI" + slideNumber, "txtURI" + slideNumber, false); + } + + [After] + public function tearDown():void + { + instance = null; + } + +/* [Test] + public function instantiated_isInstanceOfPresentation():void + { + assertTrue("instance is Presentation", instance is Presentation); + }*/ + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/presentation/PresentationTestHelperEvents.as b/tests/org/bigbluebutton/model/presentation/PresentationTestHelperEvents.as new file mode 100644 index 0000000..a9d9d77 --- /dev/null +++ b/tests/org/bigbluebutton/model/presentation/PresentationTestHelperEvents.as @@ -0,0 +1,16 @@ +package org.bigbluebutton.model.presentation +{ + import flash.events.Event; + + public class PresentationTestHelperEvents extends Event + { + public static const CHANGE_PRESENTATION_CALLBACK_CALLED:String = "CHANGE_PRESENTATION_CALLBACK_CALLED"; + public static const SLIDE_CHANGE_SIGNAL_FROM_SHOW_CORRECT:String = "SLIDE_CHANGE_SIGNAL_FROM_SHOW_CORRECT"; + public static const SLIDE_CHANGE_SIGNAL_FROM_CURRENT_SLIDE_NUM_CORRECT:String = "SLIDE_CHANGE_SIGNAL_FROM_CURRENT_SLIDE_NUM_CORRECT"; + + public function PresentationTestHelperEvents(type:String):void + { + super(type); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/presentation/SlideTest.as b/tests/org/bigbluebutton/model/presentation/SlideTest.as new file mode 100644 index 0000000..89fd76c --- /dev/null +++ b/tests/org/bigbluebutton/model/presentation/SlideTest.as @@ -0,0 +1,91 @@ +package org.bigbluebutton.model.presentation +{ + import flash.events.EventDispatcher; + import flash.utils.ByteArray; + + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.hamcrest.object.equalTo; + + public class SlideTest + { + protected var instance:Slide; + + public var dispatcher:EventDispatcher = new EventDispatcher(); + + [Before] + public function setUp():void + { + // TODO : Provide valid constructor parameters relevant to the test + instance = new Slide(1, "testSlideURI", "testThumbURI", "testTxtURI", true); + } + + /* Slide::data tests */ + + [Test (async)] + public function data_dispatchesSlideLoadedSignal():void + { + var b:ByteArray = new ByteArray(); + instance.slideLoadedSignal.add(slideLoadedSignalFromDataChecker); + Async.proceedOnEvent(this, dispatcher, SlideTestHelperEvents.SLIDE_LOADED_SIGNAL_CORRECT_DATA, 5000); + instance.data = b; + } + + private function slideLoadedSignalFromDataChecker():void + { + dispatcher.dispatchEvent(new SlideTestHelperEvents(SlideTestHelperEvents.SLIDE_LOADED_SIGNAL_CORRECT_DATA)); + } + + [Test] + public function data_setsLoadedToTrue():void + { + var b:ByteArray = new ByteArray(); + instance.data = b; + assertThat(instance.loaded, equalTo(true)); + } + + /* Slide::swfSource tests */ + + [Test (async)] + public function swfSource_dispatchesSlideLoadedSignal():void + { + var o:Object = new Object(); + instance.slideLoadedSignal.add(slideLoadedSignalFromSwfSourceChecker); + Async.proceedOnEvent(this, dispatcher, SlideTestHelperEvents.SLIDE_LOADED_SIGNAL_CORRECT_SWFSOURCE, 5000); + instance.swfSource = o; + } + + private function slideLoadedSignalFromSwfSourceChecker():void + { + dispatcher.dispatchEvent(new SlideTestHelperEvents(SlideTestHelperEvents.SLIDE_LOADED_SIGNAL_CORRECT_SWFSOURCE)); + } + + [Test] + public function swfSource_setsSWFFileSource():void + { + var o:Object = new Object; + instance.swfSource = o; + assertThat(instance.SWFFile.source, equalTo(o)); + } + + [Test] + public function swfSource_setsLoadedToTrue():void + { + var o:Object = new Object; + instance.swfSource = o; + assertThat(instance.loaded, equalTo(true)); + } + + [After] + public function tearDown():void + { + instance = null; + } + +/* [Test] + public function instantiated_isInstanceOfSlide():void + { + assertTrue("instance is Slide", instance is Slide); + }*/ + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/model/presentation/SlideTestHelperEvents.as b/tests/org/bigbluebutton/model/presentation/SlideTestHelperEvents.as new file mode 100644 index 0000000..72fbaf1 --- /dev/null +++ b/tests/org/bigbluebutton/model/presentation/SlideTestHelperEvents.as @@ -0,0 +1,15 @@ +package org.bigbluebutton.model.presentation +{ + import flash.events.Event; + + public class SlideTestHelperEvents extends Event + { + public static const SLIDE_LOADED_SIGNAL_CORRECT_DATA:String = "SLIDE_LOADED_SIGNAL_CORRECT_DATA"; + public static const SLIDE_LOADED_SIGNAL_CORRECT_SWFSOURCE:String = "SLIDE_LOADED_SIGNAL_CORRECT_SWFSOURCE"; + + public function SlideTestHelperEvents(type:String):void + { + super(type); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/testing/MediatorTests.as b/tests/org/bigbluebutton/testing/MediatorTests.as deleted file mode 100644 index f066169..0000000 --- a/tests/org/bigbluebutton/testing/MediatorTests.as +++ /dev/null @@ -1,20 +0,0 @@ -package org.bigbluebutton.testing -{ - import org.mockito.integrations.mock; - - import robotlegs.bender.bundles.mvcs.Mediator; - import robotlegs.bender.extensions.localEventMap.api.IEventMap; - - public class MediatorTests - { - /** - * Sets the dependencies on a mediator ensuring it has - * all the dependencies that the RL framework will provide - * when the application is running. - */ - protected function setupMediator(mediator: Mediator): void - { - mediator.eventMap = mock(IEventMap); - } - } -} \ No newline at end of file diff --git a/tests/org/bigbluebutton/testing/ViewTests.as b/tests/org/bigbluebutton/testing/ViewTests.as deleted file mode 100644 index 386dc3b..0000000 --- a/tests/org/bigbluebutton/testing/ViewTests.as +++ /dev/null @@ -1,54 +0,0 @@ -package org.bigbluebutton.testing -{ - import flash.events.Event; - import flash.events.IEventDispatcher; - import flash.events.MouseEvent; - - import mx.core.UIComponent; - - import org.fluint.uiImpersonation.UIImpersonator; - - import spark.components.Button; - import spark.components.TextArea; - - public class ViewTests - { - /** - * Adds a UIComponent to a mock of the display list. - */ - protected function addToUI(view: UIComponent): void - { - UIImpersonator.addChild(view); - } - - /** - * Generic teardown for each test. - */ - public function after(): void - { - UIImpersonator.removeAllChildren(); - } - - /** - * Mimics the user clicking a button. - */ - protected function click(button: IEventDispatcher): void - { - button.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); - } - - /** - * Dummy method used to test signals. - */ - protected function dummyMethod(): void { } - - /** - * Updates thats text of a TextArea and dispatches its change event. - */ - protected function updateText(textArea: TextArea, updateTextTo: String): void - { - textArea.text = updateTextTo; - textArea.dispatchEvent(new Event(Event.CHANGE)); - } - } -} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/IPagesNavigatorViewTest.as b/tests/org/bigbluebutton/view/navigation/IPagesNavigatorViewTest.as new file mode 100644 index 0000000..80ce37d --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/IPagesNavigatorViewTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation +{ + import org.flexunit.asserts.assertTrue; + + public class IPagesNavigatorViewTest + { + protected var instance:IPagesNavigatorView; + + [Before] + public function setUp():void + { + instance = new PagesNavigatorView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPagesNavigatorView():void + { + assertTrue("instance is PagesNavigatorView", instance is PagesNavigatorView); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/PagesNavigatorConfigTest.as b/tests/org/bigbluebutton/view/navigation/PagesNavigatorConfigTest.as new file mode 100644 index 0000000..77ae158 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/PagesNavigatorConfigTest.as @@ -0,0 +1,140 @@ +package org.bigbluebutton.view.navigation +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.command.JoinMeetingSignal; + import org.bigbluebutton.command.RaiseHandSignal; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.osflash.signals.Signal; + + import robotlegs.bender.extensions.commandCenter.dsl.ICommandMapper; + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class PagesNavigatorConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + [Mock] + public var commandMapper:ICommandMapper; + + private static var TIMEOUT:Number = 5000; + + protected var instance:PagesNavigatorConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper, ICommandMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new PagesNavigatorConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPagesNavigatorConfig():void + { + assertTrue("instance is PagesNavigatorConfig", instance is PagesNavigatorConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IPagesNavigatorView).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(JoinMeetingSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IPagesNavigatorView).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(JoinMeetingSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + [Test] + public function executed_callsSignalCommandMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IPagesNavigatorView).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(JoinMeetingSignal).returns(commandMapper); + + + // Act + instance.configure(); + + // Assert + assertThat(instance.signalCommandMap, received().method('map')); + } + + [Test] + public function executed_callsCommandMapperToCommandMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IPagesNavigatorView).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(JoinMeetingSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(commandMapper, received().method('toCommand')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/PagesNavigatorViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/PagesNavigatorViewBaseTest.as new file mode 100644 index 0000000..31b9203 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/PagesNavigatorViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.ViewNavigator; + + public class PagesNavigatorViewBaseTest + { + protected var instance:PagesNavigatorViewBase; + + [Before] + public function setUp():void + { + instance = new PagesNavigatorViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPagesNavigatorViewBase():void + { + assertTrue("instance is PagesNavigatorViewBase", instance is PagesNavigatorViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark ViewNavigator component", instance is ViewNavigator); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/PagesNavigatorViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/PagesNavigatorViewMediatorTest.as new file mode 100644 index 0000000..5fcc105 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/PagesNavigatorViewMediatorTest.as @@ -0,0 +1,81 @@ +package org.bigbluebutton.view.navigation +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserUISession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class PagesNavigatorViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:PagesNavigatorView; + + [Mock] + public var userUISession:UserUISession; + + [Mock] + public var pageChangedSignal:Signal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:PagesNavigatorViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(PagesNavigatorView, Signal, UserUISession), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new PagesNavigatorViewMediator(); + + instance.view = this.view; + instance.userUISession = this.userUISession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPagesNavigatorViewMediator():void + { + assertTrue("instance is PagesNavigatorViewMediator", instance is PagesNavigatorViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userUISession).getter("pageChangedSignal").returns(this.pageChangedSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/PagesNavigatorViewTest.as b/tests/org/bigbluebutton/view/navigation/PagesNavigatorViewTest.as new file mode 100644 index 0000000..b546c4b --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/PagesNavigatorViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.ViewNavigator; + + public class PagesNavigatorViewTest + { + protected var instance:PagesNavigatorView; + + [Before] + public function setUp():void + { + instance = new PagesNavigatorView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPagesNavigatorView():void + { + assertTrue("instance is PagesNavigatorView", instance is PagesNavigatorView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark ViewNavigator component", instance is ViewNavigator); + } + + [Test] + public function instantiated_implementsIPagesNavigatorView():void + { + assertTrue("instance implements IPagesNavigatorView", instance is IPagesNavigatorView); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/PagesENUMTest.as b/tests/org/bigbluebutton/view/navigation/pages/PagesENUMTest.as new file mode 100644 index 0000000..9495f43 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/PagesENUMTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages +{ + import org.flexunit.asserts.assertTrue; + + public class PagesENUMTest + { + protected var instance:PagesENUM; + + [Before] + public function setUp():void + { + instance = new PagesENUM(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPagesENUM():void + { + assertTrue("instance is PagesENUM", instance is PagesENUM); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/TransitionAnimationENUMTest.as b/tests/org/bigbluebutton/view/navigation/pages/TransitionAnimationENUMTest.as new file mode 100644 index 0000000..e89dfbf --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/TransitionAnimationENUMTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages +{ + import org.flexunit.asserts.assertTrue; + + public class TransitionAnimationENUMTest + { + protected var instance:TransitionAnimationENUM; + + [Before] + public function setUp():void + { + instance = new TransitionAnimationENUM(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfTransitionAnimationENUM():void + { + assertTrue("instance is TransitionAnimationENUM", instance is TransitionAnimationENUM); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/chat/ChatConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatConfigTest.as new file mode 100644 index 0000000..5ce9181 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.navigation.pages.chat +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class ChatConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:ChatConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new ChatConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatConfig():void + { + assertTrue("instance is ChatConfig", instance is ChatConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IChatView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IChatView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/chat/ChatItemRendererTest.as b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatItemRendererTest.as new file mode 100644 index 0000000..53ae992 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatItemRendererTest.as @@ -0,0 +1,74 @@ +package org.bigbluebutton.view.navigation.pages.chat +{ + import flash.events.Event; + + import flashx.textLayout.debug.assert; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + + import org.bigbluebutton.model.chat.ChatMessage; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.object.IsNullMatcher; + import org.hamcrest.object.nullValue; + + import spark.components.supportClasses.ItemRenderer; + + public class ChatItemRendererTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + private static var TIMEOUT:Number = 5000; + + [Mock] + public var chatMessage:ChatMessage; + + protected var instance:ChatItemRenderer; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(ChatMessage), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new ChatItemRenderer(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatItemRenderer():void + { + assertTrue("instance is ChatItemRenderer", instance is ChatItemRenderer); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark ItemRenderer component", instance is ItemRenderer); + } + + [Test] + public function setDataMethodCalledWhenChatMessageIsNull_MessageTextIsEmpty():void + { + // Arrange + chatMessage = null; + + // Act + instance.data = chatMessage; + + // Assert + assertTrue("If ChatMessage object is null, ChatItemRender's message text property should be empty", instance.message.text == ""); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/chat/ChatListTest.as b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatListTest.as new file mode 100644 index 0000000..fc91dd9 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatListTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.chat +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.List; + + public class ChatListTest + { + protected var instance:ChatList; + + [Before] + public function setUp():void + { + instance = new ChatList(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatList():void + { + assertTrue("instance is ChatList", instance is ChatList); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark List component", instance is List); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/chat/ChatViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatViewBaseTest.as new file mode 100644 index 0000000..8aac8dc --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatViewBaseTest.as @@ -0,0 +1,73 @@ +package org.bigbluebutton.view.navigation.pages.chat +{ + import flash.events.MouseEvent; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + + import spark.components.Button; + import spark.components.TextInput; + import spark.components.View; + + public class ChatViewBaseTest + { + protected var instance:ChatViewBase; + + [Before(async)] + public function setUp():void + { + instance = new ChatViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatViewBase():void + { + assertTrue("instance is ChatViewBase", instance is ChatViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function inputMessageEmpty_sendButtonDisabled():void + { + // Arrange + instance.sendButton0 = new Button(); + instance.inputMessage0 = new TextInput(); + + // Act + instance.inputMessage0.text = ""; + + // Assert + assertTrue(instance.sendButton0.enabled == false); + } + + [Test] + public function inputMessageNonEmpty_sendButtonEnabled():void + { + // Arrange + instance.sendButton0 = new Button(); + instance.inputMessage0 = new TextInput(); + + // Act + instance.inputMessage0.text = "Test"; + + // Assert + assertTrue(instance.sendButton0.enabled == true); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/chat/ChatViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatViewMediatorTest.as new file mode 100644 index 0000000..28e0baf --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatViewMediatorTest.as @@ -0,0 +1,200 @@ +package org.bigbluebutton.view.navigation.pages.chat +{ + import flash.events.Event; + + import mockolate.expect; + import mockolate.mock; + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import mx.events.FlexEvent; + + import org.bigbluebutton.core.ChatMessageService; + import org.bigbluebutton.model.User; + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.model.UserSession; + import org.bigbluebutton.model.UserUISession; + import org.bigbluebutton.model.chat.ChatMessages; + import org.bigbluebutton.model.chat.ChatMessagesSession; + import org.bigbluebutton.model.chat.PrivateChatMessage; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.hamcrest.object.equalTo; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + import spark.components.Button; + import spark.components.Label; + import spark.components.List; + import spark.components.TextInput; + + public class ChatViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + protected var instance:ChatViewMediator; + + + /* Mocked fields */ + + [Mock] + public var mockView:ChatView; + + [Mock] + public var mockChatMessageService:ChatMessageService; + + [Mock] + public var mockUserSession:UserSession; + + [Mock] + public var mockUserUISession:UserUISession; + + [Mock] + public var mockChatMessagesSession:ChatMessagesSession; + + + /* Other dependencies */ + + [Mock] + public var mockList:List; + + [Mock] + public var mockSendButton:Button; + + [Mock] + public var mockUserList:UserList; + + [Mock] + public var mockPageName:Label; + + [Mock] + public var mockInputMessage:TextInput; + + [Mock] + public var mockPrivateChat:PrivateChatMessage; + + [Mock] + public var mockChatMessages:ChatMessages; + + + /* Signals */ + + public var mockSendMessageOnSuccessSignal:Signal = new Signal(); + + public var mockSendMessageOnFailureSignal:Signal = new Signal(); + + public var mockUserRemovedSignal:Signal = new Signal(); + + public var mockUserAddedSignal:Signal = new Signal(); + + [Before] + public function setUp():void + { + instance = new ChatViewMediator(); + + /* Set up all of the mocked fields: */ + + instance.chatMessageService = mockChatMessageService; + instance.chatMessagesSession = mockChatMessagesSession; + instance.userSession = mockUserSession; + instance.userUISession = mockUserUISession; + instance.view = mockView; + + /* String all of the other dependencies together: */ + + stub(instance.chatMessageService).getter("sendMessageOnSuccessSignal").returns(mockSendMessageOnSuccessSignal); + stub(instance.chatMessageService).getter("sendMessageOnFailureSignal").returns(mockSendMessageOnFailureSignal); + + stub(instance.userSession).getter("userList").returns(mockUserList); + stub(mockUserList).getter("userRemovedSignal").returns(mockUserRemovedSignal); + stub(mockUserList).getter("userAddedSignal").returns(mockUserAddedSignal); + + stub(mockChatMessagesSession).method("getPrivateMessages").anyArgs().returns(mockPrivateChat); + stub(mockPrivateChat).getter("privateChat").returns(mockChatMessages); + + stub(mockView).getter("list").returns(mockList); + stub(mockView).getter("inputMessage").returns(mockInputMessage); + stub(mockView).getter("sendButton").returns(mockSendButton); + stub(mockView).getter("pageName").returns(mockPageName); + + // mock(mockList).asEventDispatcher(); + // mock(mockSendButton).asEventDispatcher(); + stub(mockList).asEventDispatcher(); + stub(mockSendButton).asEventDispatcher(); + } + + [Test] + public function initialize_currentPageDetailsIsUser_createNewPrivateChat():void + { + var user:User = new User(); + user.name = "User name"; + + stub(mockUserUISession).getter("currentPageDetails").returns(user); + instance.initialize(); + } + + /* The 'currentPageDetails' object, when it is not a user should contain at least 5 fields. They are: + * publicChat, user, name, chatMessages, online. 'online' only applies to private chat. */ + + [Test] + public function initialize_currentPageDetailsIsPublicChat_opensPublicChatMessages():void + { + var cpd:Object = new Object(); + cpd.publicChat = true; + cpd.user = new User(); + cpd.name = "Mock Chat Name"; + cpd.chatMessages = new ChatMessages(); + + stub(mockUserUISession).getter("currentPageDetails").returns(cpd); + instance.initialize(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + + +/* [Test] + public function instantiated_isInstanceOfChatViewMediator():void + { + assertTrue("instance is ChatViewMediator", instance is ChatViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.view).getter("sendButton").returns(this.sendButton); + stub(instance.chatMessageService).getter("sendMessageOnSuccessSignal").returns(this.sendMessageOnSuccessSignal); + stub(instance.chatMessageService).getter("sendMessageOnFailureSignal").returns(this.sendMessageOnFailureSignal); + stub(instance.userSession).getter("userList").returns(this.userList); + stub(instance.userSession.userList).getter("userAddedSignal").returns(this.userAddedSignal); + stub(instance.userSession.userList).getter("userRemovedSignal").returns(this.userRemovedSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + }*/ + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/chat/ChatViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatViewTest.as new file mode 100644 index 0000000..a760e56 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chat/ChatViewTest.as @@ -0,0 +1,54 @@ +package org.bigbluebutton.view.navigation.pages.chat +{ + import flash.events.Event; + import flash.events.MouseEvent; + + import mockolate.arg; + import mockolate.expect; + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.core.anything; + + import spark.components.Button; + import spark.components.View; + + public class ChatViewTest + { + protected var instance:ChatView; + + [Before] + public function setUp():void + { + instance = new ChatView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatView():void + { + assertTrue("instance is ChatView", instance is ChatView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsIChatView():void + { + assertTrue("instance implements IChatView", instance is IChatView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/chat/IChatViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/chat/IChatViewTest.as new file mode 100644 index 0000000..ef15496 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chat/IChatViewTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.view.navigation.pages.chat +{ + import org.bigbluebutton.core.view.IView; + import org.flexunit.asserts.assertTrue; + + public class IChatViewTest + { + protected var instance:IChatView; + + [Before] + public function setUp():void + { + instance = new ChatView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatView():void + { + assertTrue("instance is ChatView", instance is ChatView); + } + + [Test] + public function instantiated_implementsIView():void + { + assertTrue("instance implements IView", instance is IView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsConfigTest.as new file mode 100644 index 0000000..c48f0a7 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.navigation.pages.chatrooms +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class ChatRoomsConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:ChatRoomsConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new ChatRoomsConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatRoomsConfig():void + { + assertTrue("instance is ChatRoomsConfig", instance is ChatRoomsConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IChatRoomsView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IChatRoomsView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsItemRendererTest.as b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsItemRendererTest.as new file mode 100644 index 0000000..164f568 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsItemRendererTest.as @@ -0,0 +1,70 @@ +package org.bigbluebutton.view.navigation.pages.chatrooms +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + + import org.bigbluebutton.model.chat.ChatMessages; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + + import spark.components.supportClasses.ItemRenderer; + + public class ChatRoomsItemRendererTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + private static var TIMEOUT:Number = 5000; + + [Mock] + public var chatMessages:ChatMessages; + + protected var instance:ChatRoomsItemRenderer; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(ChatMessages), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new ChatRoomsItemRenderer(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatRoomsItemRenderer():void + { + assertTrue("instance is ChatRoomsItemRenderer", instance is ChatRoomsItemRenderer); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark ItemRenderer component", instance is ItemRenderer); + } + + [Test] + public function setDataMethodCalledWhenChatMessagesIsNull_TitleTextIsEmpty():void + { + // Arrange + chatMessages = null; + + // Act + instance.data = chatMessages; + + // Assert + assertTrue("If ChatMessages object is null, ChatRoomsItemRenderer's message text property should be empty", instance.title.text == ""); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsListTest.as b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsListTest.as new file mode 100644 index 0000000..892521b --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsListTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.chatrooms +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.List; + + public class ChatRoomsListTest + { + protected var instance:ChatRoomsList; + + [Before] + public function setUp():void + { + instance = new ChatRoomsList(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatRoomsList():void + { + assertTrue("instance is ChatRoomsList", instance is ChatRoomsList); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark List component", instance is List); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewBaseTest.as new file mode 100644 index 0000000..1eadcff --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.chatrooms +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class ChatRoomsViewBaseTest + { + protected var instance:ChatRoomsViewBase; + + [Before] + public function setUp():void + { + instance = new ChatRoomsViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatRoomsViewBase():void + { + assertTrue("instance is ChatRoomsViewBase", instance is ChatRoomsViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewMediatorTest.as new file mode 100644 index 0000000..dd023d8 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewMediatorTest.as @@ -0,0 +1,147 @@ +package org.bigbluebutton.view.navigation.pages.chatrooms +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.core.IChatMessageService; + import org.bigbluebutton.model.IUserSession; + import org.bigbluebutton.model.IUserUISession; + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.model.UserSession; + import org.bigbluebutton.model.UserUISession; + import org.bigbluebutton.model.chat.ChatMessages; + import org.bigbluebutton.model.chat.ChatMessagesSession; + import org.bigbluebutton.model.chat.IChatMessagesSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + import spark.components.Button; + import spark.components.List; + + public class ChatRoomsViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + protected var instance:ChatRoomsViewMediator; + + + /* Mocked fields */ + + [Mock] + public var mockView:ChatRoomsView; + + [Mock] + public var mockUserSession:UserSession; + + [Mock] + public var mockChatMessagesSession:ChatMessagesSession; + + [Mock] + public var mockUserUISession:UserUISession; + + + /* Other dependencies */ + + [Mock] + public var mockPublicChat:ChatMessages; + + [Mock] + public var mockList:List; + + [Mock] + public var mockUserList:UserList; + + + /* Signals */ + + public var mockChatMessageChangeSignal:Signal = new Signal(); + + public var publicChat_mockChatMessageChangeSignal:Signal = new Signal(); + + public var mockUserRemovedSignal:Signal = new Signal(); + + public var mockUserAddedSignal:Signal = new Signal(); + + + [Before] + public function setUp():void + { + instance = new ChatRoomsViewMediator(); + + /* Set up all of the mocked fields: */ + + instance.chatMessagesSession = mockChatMessagesSession; + instance.userSession = mockUserSession; + instance.userUISession = mockUserUISession; + instance.view = mockView; + + /* String all of the other dependencies together: */ + + stub(mockUserSession).getter("userList").returns(mockUserList); + stub(mockUserList).getter("userAddedSignal").returns(mockUserAddedSignal); + stub(mockUserList).getter("userRemovedSignal").returns(mockUserRemovedSignal); + + stub(mockChatMessagesSession).getter("chatMessageChangeSignal").returns(mockChatMessageChangeSignal); + stub(mockChatMessagesSession).getter("publicChat").returns(mockPublicChat); + stub(mockPublicChat).getter("chatMessageChangeSignal").returns(publicChat_mockChatMessageChangeSignal); + + stub(mockView).getter("list").returns(mockList); + stub(mockList).asEventDispatcher(); + } + + [Test] + public function initialize():void + { + + } + + [After] + public function tearDown():void + { + instance = null; + } + +/* [Test] + public function instantiated_isInstanceOfChatRoomsViewMediator():void + { + assertTrue("instance is ChatRoomsViewMediator", instance is ChatRoomsViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.chatMessagesSession).getter("publicChat").returns(this.publicChat); + stub(instance.chatMessagesSession.publicChat).getter("chatMessageChangeSignal").returns(this.chatMessageChangeSignal); + stub(instance.userSession).getter("userList").returns(this.userList); + stub(instance.userSession.userList).getter("userAddedSignal").returns(this.userAddedSignal); + stub(instance.userSession.userList).getter("userRemovedSignal").returns(this.userRemovedSignal); + stub(instance.chatMessagesSession).getter("chatMessageChangeSignal").returns(this.chatMessageChangeSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + }*/ + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewTest.as new file mode 100644 index 0000000..7e87065 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/ChatRoomsViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.chatrooms +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class ChatRoomsViewTest + { + protected var instance:ChatRoomsView; + + [Before] + public function setUp():void + { + instance = new ChatRoomsView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatRoomsView():void + { + assertTrue("instance is ChatRoomsView", instance is ChatRoomsView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsIChatRoomsView():void + { + assertTrue("instance implements IChatRoomsView", instance is IChatRoomsView); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/chatrooms/IChatRoomsViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/IChatRoomsViewTest.as new file mode 100644 index 0000000..f1f5fa0 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/chatrooms/IChatRoomsViewTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.view.navigation.pages.chatrooms +{ + import org.bigbluebutton.core.view.IView; + import org.flexunit.asserts.assertTrue; + + public class IChatRoomsViewTest + { + protected var instance:IChatRoomsView; + + [Before] + public function setUp():void + { + instance = new ChatRoomsView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfChatRoomsView():void + { + assertTrue("instance is ChatRoomsView", instance is ChatRoomsView); + } + + [Test] + public function instantiated_implementsIView():void + { + assertTrue("instance implements IView", instance is IView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/common/IMenuButtonsViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/common/IMenuButtonsViewTest.as new file mode 100644 index 0000000..6a36acb --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/common/IMenuButtonsViewTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages.common +{ + import org.flexunit.asserts.assertTrue; + + public class IMenuButtonsViewTest + { + protected var instance:IMenuButtonsView; + + [Before] + public function setUp():void + { + instance = new MenuButtonsView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMenuButtonsView():void + { + assertTrue("instance is IMenuButtonsView", instance is IMenuButtonsView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsConfigTest.as new file mode 100644 index 0000000..1069c62 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.navigation.pages.common +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class MenuButtonsConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:MenuButtonsConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new MenuButtonsConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMenuButtonsConfig():void + { + assertTrue("instance is MenuButtonsConfig", instance is MenuButtonsConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IMenuButtonsView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IMenuButtonsView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsTest.as b/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsTest.as new file mode 100644 index 0000000..ff7c96a --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.common +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class MenuButtonsTest + { + protected var instance:MenuButtons; + + [Before] + public function setUp():void + { + instance = new MenuButtons(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMenuButtons():void + { + assertTrue("instance is MenuButtons", instance is MenuButtons); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsViewMediatorTest.as new file mode 100644 index 0000000..d966ee5 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsViewMediatorTest.as @@ -0,0 +1,93 @@ +package org.bigbluebutton.view.navigation.pages.common +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.core.DeskshareConnection; + import org.bigbluebutton.model.UserSession; + import org.bigbluebutton.model.UserUISession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class MenuButtonsViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:MenuButtonsView; + + [Mock] + public var userSession:UserSession; + + [Mock] + public var isStreamingSignal:Signal; + + [Mock] + public var deskshareConnection:DeskshareConnection; + + [Mock] + public var userUISession:UserUISession; + + [Mock] + public var loadingSignal:Signal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:MenuButtonsViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(UserSession, DeskshareConnection, UserUISession, Signal), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new MenuButtonsViewMediator(); + + instance.userSession = this.userSession; + instance.view = this.view; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMenuButtonsViewMediator():void + { + assertTrue("instance is MenuButtonsViewMediator", instance is MenuButtonsViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userSession).getter("deskshareConnection").returns(this.deskshareConnection); + stub(instance.userSession.deskshareConnection).getter("isStreamingSignal").returns(this.isStreamingSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsViewTest.as new file mode 100644 index 0000000..92e161f --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/common/MenuButtonsViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.common +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class MenuButtonsViewTest + { + protected var instance:MenuButtonsView; + + [Before] + public function setUp():void + { + instance = new MenuButtonsView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMenuButtonsView():void + { + assertTrue("instance is MenuButtonsView", instance is MenuButtonsView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + + [Test] + public function instantiated_implementsIMenuButtonsView():void + { + assertTrue("instance implements IMenuButtonsView", instance is IMenuButtonsView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/common/VideoViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/common/VideoViewTest.as new file mode 100644 index 0000000..bba6ca9 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/common/VideoViewTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.common +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class VideoViewTest + { + protected var instance:VideoView; + + [Before] + public function setUp():void + { + instance = new VideoView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVideoView():void + { + assertTrue("instance is VideoView", instance is VideoView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareConfigTest.as new file mode 100644 index 0000000..0493c95 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.navigation.pages.deskshare +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class DeskshareConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:DeskshareConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new DeskshareConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDeskshareConfig():void + { + assertTrue("instance is DeskshareConfig", instance is DeskshareConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IDeskshareView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IDeskshareView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareVideoViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareVideoViewTest.as new file mode 100644 index 0000000..5efe559 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareVideoViewTest.as @@ -0,0 +1,42 @@ +package org.bigbluebutton.view.navigation.pages.deskshare +{ + import org.bigbluebutton.view.navigation.pages.common.VideoView; + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class DeskshareVideoViewTest + { + protected var instance:DeskshareVideoView; + + [Before] + public function setUp():void + { + instance = new DeskshareVideoView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDeskshareVideoView():void + { + assertTrue("instance is DeskshareVideoView", instance is DeskshareVideoView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + + [Test] + public function instantiated_extendsVideoView():void + { + assertTrue("instance extends VideoView", instance is VideoView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewBaseTest.as new file mode 100644 index 0000000..beed143 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.deskshare +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class DeskshareViewBaseTest + { + protected var instance:DeskshareViewBase; + + [Before] + public function setUp():void + { + instance = new DeskshareViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDeskshareViewBase():void + { + assertTrue("instance is DeskshareViewBase", instance is DeskshareViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewMediatorTest.as new file mode 100644 index 0000000..941ed5a --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewMediatorTest.as @@ -0,0 +1,91 @@ +package org.bigbluebutton.view.navigation.pages.deskshare +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.core.DeskshareConnection; + import org.bigbluebutton.model.IUserSession; + import org.bigbluebutton.model.UserSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class DeskshareViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:DeskshareView; + + [Mock] + public var userSession:UserSession; + + [Mock] + public var deskshareConnection:DeskshareConnection; + + [Mock] + public var isStreamingSignal:Signal; + + [Mock] + public var mouseLocationChangedSignal:Signal + + private static var TIMEOUT:Number = 5000; + + protected var instance:DeskshareViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(DeskshareView, UserSession, Signal, DeskshareConnection), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new DeskshareViewMediator(); + + instance.userSession = this.userSession; + instance.view = this.view; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDeskshareViewMediator():void + { + assertTrue("instance is DeskshareViewMediator", instance is DeskshareViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userSession).getter("deskshareConnection").returns(this.deskshareConnection); + stub(instance.userSession.deskshareConnection).getter("isStreamingSignal").returns(this.isStreamingSignal); + stub(instance.userSession.deskshareConnection).getter("mouseLocationChangedSignal").returns(this.mouseLocationChangedSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewTest.as new file mode 100644 index 0000000..92cc56d --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/deskshare/DeskshareViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.deskshare +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class DeskshareViewTest + { + protected var instance:DeskshareView; + + [Before] + public function setUp():void + { + instance = new DeskshareView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDeskshareView():void + { + assertTrue("instance is DeskshareView", instance is DeskshareView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsIDeskshareView():void + { + assertTrue("instance implements IDeskshareView", instance is IDeskshareView); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/deskshare/IDeskshareViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/deskshare/IDeskshareViewTest.as new file mode 100644 index 0000000..04451ae --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/deskshare/IDeskshareViewTest.as @@ -0,0 +1,28 @@ +package org.bigbluebutton.view.navigation.pages.deskshare +{ + import org.bigbluebutton.core.view.IView; + import org.flexunit.asserts.assertTrue; + + public class IDeskshareViewTest + { + protected var instance:IDeskshareView; + + [Before] + public function setUp():void + { + instance = new DeskshareView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDeskshareView():void + { + assertTrue("instance is DeskshareView", instance is DeskshareView); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageConfigTest.as new file mode 100644 index 0000000..0078b95 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.navigation.pages.disconnect +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class DisconnectPageConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:DisconnectPageConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new DisconnectPageConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDisconnectPageConfig():void + { + assertTrue("instance is DisconnectPageConfig", instance is DisconnectPageConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IDisconnectPageView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IDisconnectPageView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewBaseTest.as new file mode 100644 index 0000000..93c8a0a --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.disconnect +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class DisconnectPageViewBaseTest + { + protected var instance:DisconnectPageViewBase; + + [Before] + public function setUp():void + { + instance = new DisconnectPageViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDisconnectPageViewBase():void + { + assertTrue("instance is DisconnectPageViewBase", instance is DisconnectPageViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewMediatorTest.as new file mode 100644 index 0000000..ff92d97 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewMediatorTest.as @@ -0,0 +1,68 @@ +package org.bigbluebutton.view.navigation.pages.disconnect +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class DisconnectPageViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:DisconnectPageView; + + private static var TIMEOUT:Number = 5000; + + protected var instance:DisconnectPageViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(DisconnectPageView), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new DisconnectPageViewMediator(); + + instance.view = this.view; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDisconnectPageViewMediator():void + { + assertTrue("instance is DisconnectPageViewMediator", instance is DisconnectPageViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewTest.as new file mode 100644 index 0000000..145b65a --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/disconnect/DisconnectPageViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.disconnect +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class DisconnectPageViewTest + { + protected var instance:DisconnectPageView; + + [Before] + public function setUp():void + { + instance = new DisconnectPageView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDisconnectPageView():void + { + assertTrue("instance is DisconnectPageView", instance is DisconnectPageView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsIDisconnectPageView():void + { + assertTrue("instance implements IDisconnectPageView", instance is IDisconnectPageView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/disconnect/IDisconnectPageViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/disconnect/IDisconnectPageViewTest.as new file mode 100644 index 0000000..0167d05 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/disconnect/IDisconnectPageViewTest.as @@ -0,0 +1,28 @@ +package org.bigbluebutton.view.navigation.pages.disconnect +{ + import org.bigbluebutton.core.view.IView; + import org.flexunit.asserts.assertTrue; + + public class IDisconnectPageViewTest + { + protected var instance:IDisconnectPageView; + + [Before] + public function setUp():void + { + instance = new DisconnectPageView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDisconnectPageView():void + { + assertTrue("instance is DisconnectPageView", instance is DisconnectPageView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/disconnect/enum/DisconnectEnumTest.as b/tests/org/bigbluebutton/view/navigation/pages/disconnect/enum/DisconnectEnumTest.as new file mode 100644 index 0000000..f0e9ce1 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/disconnect/enum/DisconnectEnumTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages.disconnect.enum +{ + import org.flexunit.asserts.assertTrue; + + public class DisconnectEnumTest + { + protected var instance:DisconnectEnum; + + [Before] + public function setUp():void + { + instance = new DisconnectEnum(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDisconnectEnum():void + { + assertTrue("instance is DisconnectEnum", instance is DisconnectEnum); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/disconnect/enum/DisconnectTypeTest.as b/tests/org/bigbluebutton/view/navigation/pages/disconnect/enum/DisconnectTypeTest.as new file mode 100644 index 0000000..cbfef94 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/disconnect/enum/DisconnectTypeTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages.disconnect.enum +{ + import org.flexunit.asserts.assertTrue; + + public class DisconnectTypeTest + { + protected var instance:DisconnectType; + + [Before] + public function setUp():void + { + instance = new DisconnectType(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfDisconnectType():void + { + assertTrue("instance is DisconnectType", instance is DisconnectType); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/login/ILoginPageViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/login/ILoginPageViewTest.as new file mode 100644 index 0000000..168c2f0 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/login/ILoginPageViewTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages.login +{ + import org.flexunit.asserts.assertTrue; + + public class ILoginPageViewTest + { + protected var instance:ILoginPageView; + + [Before] + public function setUp():void + { + instance = new LoginPageView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoginPageView():void + { + assertTrue("instance is LoginPageView", instance is LoginPageView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageConfigTest.as new file mode 100644 index 0000000..97d01d1 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.navigation.pages.login +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class LoginPageConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:LoginPageConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new LoginPageConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoginPageConfig():void + { + assertTrue("instance is LoginPageConfig", instance is LoginPageConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(ILoginPageView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(ILoginPageView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageViewBaseTest.as new file mode 100644 index 0000000..bc6580f --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.login +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class LoginPageViewBaseTest + { + protected var instance:LoginPageViewBase; + + [Before] + public function setUp():void + { + instance = new LoginPageViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoginPageViewBase():void + { + assertTrue("instance is LoginPageViewBase", instance is LoginPageViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageViewMediatorTest.as new file mode 100644 index 0000000..f82d244 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageViewMediatorTest.as @@ -0,0 +1,81 @@ +package org.bigbluebutton.view.navigation.pages.login +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserUISession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class LoginPageViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:LoginPageView; + + [Mock] + public var userUISession:UserUISession; + + [Mock] + public var unsuccessJoined:Signal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:LoginPageViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(LoginPageView, userUISession, Signal), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new LoginPageViewMediator(); + + instance.view = this.view; + instance.userUISession = this.userUISession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoginPageViewMediator():void + { + assertTrue("instance is LoginPageViewMediator", instance is LoginPageViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userUISession).getter("unsuccessJoined").returns(this.unsuccessJoined); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageViewTest.as new file mode 100644 index 0000000..73de0df --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/login/LoginPageViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.login +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class LoginPageViewTest + { + protected var instance:LoginPageView; + + [Before] + public function setUp():void + { + instance = new LoginPageView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoginPageView():void + { + assertTrue("instance is LoginPageView", instance is LoginPageView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsILoginPageView():void + { + assertTrue("instance implements ILoginPageView", instance is ILoginPageView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/participants/IParticipantsViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/participants/IParticipantsViewTest.as new file mode 100644 index 0000000..fc39aa5 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/participants/IParticipantsViewTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages.participants +{ + import org.flexunit.asserts.assertTrue; + + public class IParticipantsViewTest + { + protected var instance:IParticipantsView; + + [Before] + public function setUp():void + { + instance = new ParticipantsView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfParticipantsView():void + { + assertTrue("instance is ParticipantsView", instance is ParticipantsView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantItemRendererTest.as b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantItemRendererTest.as new file mode 100644 index 0000000..0597c7e --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantItemRendererTest.as @@ -0,0 +1,70 @@ +package org.bigbluebutton.view.navigation.pages.participants +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + + import org.bigbluebutton.model.User; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + + import spark.components.supportClasses.ItemRenderer; + + public class ParticipantItemRendererTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + private static var TIMEOUT:Number = 5000; + + [Mock] + public var user:User; + + protected var instance:ParticipantItemRenderer; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(User), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new ParticipantItemRenderer(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfParticipantItemRenderer():void + { + assertTrue("instance is ParticipantItemRenderer", instance is ParticipantItemRenderer); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark ItemRenderer component", instance is ItemRenderer); + } + + [Test] + public function setDataMethodCalledWhenUserIsNull_LabelTextIsEmpty():void + { + // Arrange + user = null; + + // Act + instance.data = user; + + // Assert + assertTrue("If User object is null, ParticipantItemRenderer's labelDisplay text property should be empty", instance.labelDisplay.text == ""); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsConfigTest.as new file mode 100644 index 0000000..d2c791b --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.navigation.pages.participants +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class ParticipantsConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:ParticipantsConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new ParticipantsConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfParticipantsConfig():void + { + assertTrue("instance is ParticipantsConfig", instance is ParticipantsConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IParticipantsView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IParticipantsView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsListTest.as b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsListTest.as new file mode 100644 index 0000000..719ba5d --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsListTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.participants +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.List; + + public class ParticipantsListTest + { + protected var instance:ParticipantsList; + + [Before] + public function setUp():void + { + instance = new ParticipantsList(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfParticipantsList():void + { + assertTrue("instance is ParticipantsList", instance is ParticipantsList); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark List component", instance is List); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsViewBaseTest.as new file mode 100644 index 0000000..a00ee9c --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.participants +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class ParticipantsViewBaseTest + { + protected var instance:ParticipantsViewBase; + + [Before] + public function setUp():void + { + instance = new ParticipantsViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfParticipantsViewBase():void + { + assertTrue("instance is ParticipantsViewBase", instance is ParticipantsViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsViewMediatorTest.as new file mode 100644 index 0000000..95bb575 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsViewMediatorTest.as @@ -0,0 +1,95 @@ +package org.bigbluebutton.view.navigation.pages.participants +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.model.UserSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.ISignal; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class ParticipantsViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:ParticipantsView; + + [Mock] + public var userList:UserList; + + [Mock] + public var userSession:UserSession; + + [Mock] + public var userChangeSignal:Signal; + + [Mock] + public var userAddedSignal:Signal; + + [Mock] + public var userRemovedSignal:Signal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:ParticipantsViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(ParticipantsView, UserSession, UserList, Signal), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new ParticipantsViewMediator(); + + instance.view = this.view; + instance.userSession = this.userSession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfParticipantsViewMediator():void + { + assertTrue("instance is ParticipantsViewMediator", instance is ParticipantsViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userSession).getter("userList").returns(this.userList); + stub(instance.userSession.userList).getter("userChangeSignal").returns(this.userChangeSignal); + stub(instance.userSession.userList).getter("userAddedSignal").returns(this.userAddedSignal); + stub(instance.userSession.userList).getter("userRemovedSignal").returns(this.userRemovedSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsViewTest.as new file mode 100644 index 0000000..11d6a0d --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/participants/ParticipantsViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.participants +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class ParticipantsViewTest + { + protected var instance:ParticipantsView; + + [Before] + public function setUp():void + { + instance = new ParticipantsView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfParticipantsView():void + { + assertTrue("instance is ParticipantsView", instance is ParticipantsView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsIParticipantsView():void + { + assertTrue("instance implements IParticipantsView", instance is IParticipantsView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/presentation/IPresentationViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/presentation/IPresentationViewTest.as new file mode 100644 index 0000000..5a0c74a --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/presentation/IPresentationViewTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages.presentation +{ + import org.flexunit.asserts.assertTrue; + + public class IPresentationViewTest + { + protected var instance:IPresentationView; + + [Before] + public function setUp():void + { + instance = new PresentationView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPresentationView():void + { + assertTrue("instance is PresentationView", instance is PresentationView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationConfigTest.as new file mode 100644 index 0000000..23e4df1 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.navigation.pages.presentation +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class PresentationConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:PresentationConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new PresentationConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPresentationConfig():void + { + assertTrue("instance is PresentationConfig", instance is PresentationConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IPresentationView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IPresentationView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationViewBaseTest.as new file mode 100644 index 0000000..4d1d532 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.presentation +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class PresentationViewBaseTest + { + protected var instance:PresentationViewBase; + + [Before] + public function setUp():void + { + instance = new PresentationViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPresentationViewBase():void + { + assertTrue("instance is PresentationViewBase", instance is PresentationViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationViewMediatorTest.as new file mode 100644 index 0000000..0de862e --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationViewMediatorTest.as @@ -0,0 +1,86 @@ +package org.bigbluebutton.view.navigation.pages.presentation +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserSession; + import org.bigbluebutton.model.presentation.PresentationList; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class PresentationViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:PresentationView; + + [Mock] + public var presentationList:PresentationList; + + [Mock] + public var userSession:UserSession; + + [Mock] + public var presentationChangeSignal:Signal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:PresentationViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(PresentationView, UserSession, PresentationList, Signal), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new PresentationViewMediator(); + + instance.view = this.view; + instance.userSession = this.userSession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPresentationViewMediator():void + { + assertTrue("instance is PresentationViewMediator", instance is PresentationViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userSession).getter("presentationList").returns(this.presentationList); + stub(instance.userSession.presentationList).getter("presentationChangeSignal").returns(this.presentationChangeSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationViewTest.as new file mode 100644 index 0000000..e6ae016 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/presentation/PresentationViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.presentation +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class PresentationViewTest + { + protected var instance:PresentationView; + + [Before] + public function setUp():void + { + instance = new PresentationView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfPresentationView():void + { + assertTrue("instance is PresentationView", instance is PresentationView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsIPresentationView():void + { + assertTrue("instance implements IPresentationView", instance is IPresentationView); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/profile/IProfileViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/profile/IProfileViewTest.as new file mode 100644 index 0000000..dd5d570 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/profile/IProfileViewTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages.profile +{ + import org.flexunit.asserts.assertTrue; + + public class IProfileViewTest + { + protected var instance:IProfileView; + + [Before] + public function setUp():void + { + instance = new ProfileView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfProfileView():void + { + assertTrue("instance is ProfileView", instance is ProfileView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileConfigTest.as new file mode 100644 index 0000000..0dd18de --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileConfigTest.as @@ -0,0 +1,138 @@ +package org.bigbluebutton.view.navigation.pages.profile +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.command.RaiseHandSignal; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.osflash.signals.Signal; + + import robotlegs.bender.extensions.commandCenter.dsl.ICommandMapper; + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class ProfileConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + [Mock] + public var commandMapper:ICommandMapper; + + private static var TIMEOUT:Number = 5000; + + protected var instance:ProfileConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper, ICommandMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new ProfileConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfProfileConfig():void + { + assertTrue("instance is ProfileConfig", instance is ProfileConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IProfileView).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(RaiseHandSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IProfileView).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(RaiseHandSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + [Test] + public function executed_callsSignalCommandMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IProfileView).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(RaiseHandSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.signalCommandMap, received().method('map')); + } + + [Test] + public function executed_callsCommandMapperToCommandMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IProfileView).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(RaiseHandSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(commandMapper, received().method('toCommand')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileViewBaseTest.as new file mode 100644 index 0000000..3ea7d8d --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.profile +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class ProfileViewBaseTest + { + protected var instance:ProfileViewBase; + + [Before] + public function setUp():void + { + instance = new ProfileViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfProfileViewBase():void + { + assertTrue("instance is ProfileViewBase", instance is ProfileViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileViewMediatorTest.as new file mode 100644 index 0000000..af1238d --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileViewMediatorTest.as @@ -0,0 +1,110 @@ +package org.bigbluebutton.view.navigation.pages.profile +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.model.UserSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + import spark.components.Button; + import spark.components.RadioButtonGroup; + + public class ProfileViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:ProfileView; + + [Mock] + public var userList:UserList; + + [Mock] + public var userSession:UserSession; + + [Mock] + public var userChangeSignal:Signal; + + [Mock] + public var shareCameraButton:Button; + + [Mock] + public var shareMicButton:Button; + + [Mock] + public var cameraQualityRadioGroup:RadioButtonGroup; + + [Mock] + public var raiseHandButton:Button; + + [Mock] + public var logoutButton:Button; + + private static var TIMEOUT:Number = 5000; + + protected var instance:ProfileViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(ProfileView, UserSession, UserList, Signal, Button, RadioButtonGroup), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new ProfileViewMediator(); + + instance.view = this.view; + instance.userSession = this.userSession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfProfileViewMediator():void + { + assertTrue("instance is ProfileViewMediator", instance is ProfileViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.view).getter("shareCameraButton").returns(this.shareCameraButton); + stub(instance.view).getter("shareMicButton").returns(this.shareMicButton); + stub(instance.view).getter("raiseHandButton").returns(this.raiseHandButton); + stub(instance.view).getter("cameraQualityRadioGroup").returns(this.cameraQualityRadioGroup); + stub(instance.view).getter("logoutButton").returns(this.logoutButton); + + stub(instance.userSession).getter("userList").returns(this.userList); + stub(instance.userSession.userList).getter("userChangeSignal").returns(this.userChangeSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileViewTest.as new file mode 100644 index 0000000..aef4e62 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/profile/ProfileViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.profile +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class ProfileViewTest + { + protected var instance:ProfileView; + + [Before] + public function setUp():void + { + instance = new ProfileView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfProfileView():void + { + assertTrue("instance is ProfileView", instance is ProfileView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsIProfileView():void + { + assertTrue("instance implements IProfileView", instance is IProfileView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/ISelectParticipantViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/ISelectParticipantViewTest.as new file mode 100644 index 0000000..f615e2a --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/ISelectParticipantViewTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages.selectparticipant +{ + import org.flexunit.asserts.assertTrue; + + public class ISelectParticipantViewTest + { + protected var instance:ISelectParticipantView; + + [Before] + public function setUp():void + { + instance = new SelectParticipantView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSelectParticipantView():void + { + assertTrue("instance is SelectParticipantView", instance is SelectParticipantView); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantConfigTest.as new file mode 100644 index 0000000..306cf20 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.navigation.pages.selectparticipant +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class SelectParticipantConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:SelectParticipantConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new SelectParticipantConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSelectParticipantConfig():void + { + assertTrue("instance is SelectParticipantConfig", instance is SelectParticipantConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(ISelectParticipantView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(ISelectParticipantView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantItemRendererTest.as b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantItemRendererTest.as new file mode 100644 index 0000000..24d8144 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantItemRendererTest.as @@ -0,0 +1,70 @@ +package org.bigbluebutton.view.navigation.pages.selectparticipant +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + + import org.bigbluebutton.model.User; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + + import spark.components.supportClasses.ItemRenderer; + + public class SelectParticipantItemRendererTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + private static var TIMEOUT:Number = 5000; + + [Mock] + public var user:User; + + protected var instance:SelectParticipantItemRenderer; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(User), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new SelectParticipantItemRenderer(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSelectParticipantItemRenderer():void + { + assertTrue("instance is SelectParticipantItemRenderer", instance is SelectParticipantItemRenderer); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark ItemRenderer component", instance is ItemRenderer); + } + + [Test] + public function setDataMethodCalledWhenUserIsNull_LabelTextIsEmpty():void + { + // Arrange + user = null; + + // Act + instance.data = user; + + // Assert + assertTrue("If User object is null, SelectParticipantItemRenderer's labelDisplay text property should be empty", instance.labelDisplay.text == ""); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantListTest.as b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantListTest.as new file mode 100644 index 0000000..477bbe0 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantListTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.selectparticipant +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.List; + + public class SelectParticipantListTest + { + protected var instance:SelectParticipantList; + + [Before] + public function setUp():void + { + instance = new SelectParticipantList(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSelectParticipantList():void + { + assertTrue("instance is SelectParticipantList", instance is SelectParticipantList); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark List component", instance is List); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantViewBaseTest.as new file mode 100644 index 0000000..cd2242e --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.selectparticipant +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class SelectParticipantViewBaseTest + { + protected var instance:SelectParticipantViewBase; + + [Before] + public function setUp():void + { + instance = new SelectParticipantViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSelectParticipantViewBase():void + { + assertTrue("instance is SelectParticipantViewBase", instance is SelectParticipantViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantViewMediatorTest.as new file mode 100644 index 0000000..a91853f --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantViewMediatorTest.as @@ -0,0 +1,94 @@ +package org.bigbluebutton.view.navigation.pages.selectparticipant +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.model.UserSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class SelectParticipantViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:SelectParticipantView; + + [Mock] + public var userList:UserList; + + [Mock] + public var userSession:UserSession; + + [Mock] + public var userChangeSignal:Signal; + + [Mock] + public var userAddedSignal:Signal; + + [Mock] + public var userRemovedSignal:Signal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:SelectParticipantViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(SelectParticipantView, UserSession, UserList, Signal), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new SelectParticipantViewMediator(); + + instance.view = this.view; + instance.userSession = this.userSession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSelectParticipantViewMediator():void + { + assertTrue("instance is SelectParticipantViewMediator", instance is SelectParticipantViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userSession).getter("userList").returns(this.userList); + stub(instance.userSession.userList).getter("userChangeSignal").returns(this.userChangeSignal); + stub(instance.userSession.userList).getter("userAddedSignal").returns(this.userAddedSignal); + stub(instance.userSession.userList).getter("userRemovedSignal").returns(this.userRemovedSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantViewTest.as new file mode 100644 index 0000000..3178c8f --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/selectparticipant/SelectParticipantViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.selectparticipant +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class SelectParticipantViewTest + { + protected var instance:SelectParticipantView; + + [Before] + public function setUp():void + { + instance = new SelectParticipantView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSelectParticipantView():void + { + assertTrue("instance is SelectParticipantView", instance is SelectParticipantView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsISelectParticipantView():void + { + assertTrue("instance implements ISelectParticipantView", instance is ISelectParticipantView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/userdetails/IUserDetailsViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/userdetails/IUserDetailsViewTest.as new file mode 100644 index 0000000..25b92a7 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/userdetails/IUserDetailsViewTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages.userdetails +{ + import org.flexunit.asserts.assertTrue; + + public class IUserDetailsViewTest + { + protected var instance:IUserDetailsView; + + [Before] + public function setUp():void + { + instance = new UserDetailsView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUserDetailsView():void + { + assertTrue("instance is UserDetailsView", instance is UserDetailsView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsConfigTest.as new file mode 100644 index 0000000..74f4fd7 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.navigation.pages.userdetails +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class UserDetailsConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:UserDetailsConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new UserDetailsConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUserDetailsConfig():void + { + assertTrue("instance is UserDetailsConfig", instance is UserDetailsConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IUserDetailsView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IUserDetailsView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewBaseTest.as new file mode 100644 index 0000000..dc93717 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.userdetails +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class UserDetailsViewBaseTest + { + protected var instance:UserDetailsViewBase; + + [Before] + public function setUp():void + { + instance = new UserDetailsViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUserDetailsViewBase():void + { + assertTrue("instance is UserDetailsViewBase", instance is UserDetailsViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewMediatorTest.as new file mode 100644 index 0000000..bd974e7 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewMediatorTest.as @@ -0,0 +1,100 @@ +package org.bigbluebutton.view.navigation.pages.userdetails +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.model.UserSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + import spark.components.Button; + + public class UserDetailsViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:UserDetailsView; + + [Mock] + public var userList:UserList; + + [Mock] + public var userSession:UserSession; + + [Mock] + public var userChangeSignal:Signal; + + [Mock] + public var userRemovedSignal:Signal; + + [Mock] + public var showCameraButton:Button; + + [Mock] + public var showPrivateChatButton:Button; + + private static var TIMEOUT:Number = 5000; + + protected var instance:UserDetailsViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(UserDetailsView, UserSession, UserList, Signal, Button), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new UserDetailsViewMediator(); + + instance.view = this.view; + instance.userSession = this.userSession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUserDetailsViewMediator():void + { + assertTrue("instance is UserDetailsViewMediator", instance is UserDetailsViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userSession).getter("userList").returns(this.userList); + stub(instance.userSession.userList).getter("userChangeSignal").returns(this.userChangeSignal); + stub(instance.userSession.userList).getter("userRemovedSignal").returns(this.userRemovedSignal); + stub(instance.view).getter("showCameraButton").returns(this.showCameraButton); + stub(instance.view).getter("showPrivateChat").returns(this.showPrivateChatButton); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewTest.as new file mode 100644 index 0000000..601e4c1 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/userdetails/UserDetailsViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.userdetails +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class UserDetailsViewTest + { + protected var instance:UserDetailsView; + + [Before] + public function setUp():void + { + instance = new UserDetailsView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfUserDetailsView():void + { + assertTrue("instance is UserDetailsView", instance is UserDetailsView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsIUserDetailsView():void + { + assertTrue("instance implements IUserDetailsView", instance is IUserDetailsView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/videochat/IVideoChatViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/videochat/IVideoChatViewTest.as new file mode 100644 index 0000000..6db069d --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/videochat/IVideoChatViewTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.navigation.pages.videochat +{ + import org.flexunit.asserts.assertTrue; + + public class IVideoChatViewTest + { + protected var instance:IVideoChatView; + + [Before] + public function setUp():void + { + instance = new VideoChatView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVideoChatView():void + { + assertTrue("instance is VideoChatView", instance is VideoChatView); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatConfigTest.as b/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatConfigTest.as new file mode 100644 index 0000000..80bf9e6 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatConfigTest.as @@ -0,0 +1,108 @@ +package org.bigbluebutton.view.navigation.pages.videochat +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.command.RaiseHandSignal; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + import org.osflash.signals.Signal; + + import robotlegs.bender.extensions.commandCenter.dsl.ICommandMapper; + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class VideoChatConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + [Mock] + public var commandMapper:ICommandMapper; + + private static var TIMEOUT:Number = 5000; + + protected var instance:VideoChatConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper, ICommandMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new VideoChatConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVideoChatConfig():void + { + assertTrue("instance is VideoChatConfig", instance is VideoChatConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IVideoChatView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IVideoChatView).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatVideoViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatVideoViewTest.as new file mode 100644 index 0000000..f4afb66 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatVideoViewTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.videochat +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class VideoChatVideoViewTest + { + protected var instance:VideoChatVideoView; + + [Before] + public function setUp():void + { + instance = new VideoChatVideoView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVideoChatVideoView():void + { + assertTrue("instance is VideoChatVideoView", instance is VideoChatVideoView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewBaseTest.as b/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewBaseTest.as new file mode 100644 index 0000000..5b71cc7 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.navigation.pages.videochat +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class VideoChatViewBaseTest + { + protected var instance:VideoChatViewBase; + + [Before] + public function setUp():void + { + instance = new VideoChatViewBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVideoChatViewBase():void + { + assertTrue("instance is VideoChatViewBase", instance is VideoChatViewBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewMediatorTest.as b/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewMediatorTest.as new file mode 100644 index 0000000..33639a5 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewMediatorTest.as @@ -0,0 +1,105 @@ +package org.bigbluebutton.view.navigation.pages.videochat +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.model.UserSession; + import org.bigbluebutton.model.UserUISession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.ISignal; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class VideoChatViewMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:VideoChatView; + + [Mock] + public var userList:UserList; + + [Mock] + public var userSession:UserSession; + + [Mock] + public var userUISession:UserUISession; + + [Mock] + public var userChangeSignal:Signal; + + [Mock] + public var userAddedSignal:Signal; + + [Mock] + public var userRemovedSignal:Signal; + + [Mock] + public var pageTransitionStartSignal:ISignal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:VideoChatViewMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(VideoChatView, UserSession, UserList, Signal, UserUISession), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new VideoChatViewMediator(); + + instance.view = this.view; + instance.userSession = this.userSession; + instance.userUISession = this.userUISession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVideoChatViewMediator():void + { + assertTrue("instance is VideoChatViewMediator", instance is VideoChatViewMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userSession).getter("userList").returns(this.userList); + stub(instance.userSession.userList).getter("userChangeSignal").returns(this.userChangeSignal); + stub(instance.userSession.userList).getter("userAddedSignal").returns(this.userAddedSignal); + stub(instance.userSession.userList).getter("userRemovedSignal").returns(this.userRemovedSignal); + + stub(instance.userUISession).getter("pageTransitionStartSignal").returns(this.pageTransitionStartSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewTest.as b/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewTest.as new file mode 100644 index 0000000..a72b4b2 --- /dev/null +++ b/tests/org/bigbluebutton/view/navigation/pages/videochat/VideoChatViewTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.navigation.pages.videochat +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.View; + + public class VideoChatViewTest + { + protected var instance:VideoChatView; + + [Before] + public function setUp():void + { + instance = new VideoChatView(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfVideoChatView():void + { + assertTrue("instance is VideoChatView", instance is VideoChatView); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark View component", instance is View); + } + + [Test] + public function instantiated_implementsIVideoChatView():void + { + assertTrue("instance implements IVideoChatView", instance is IVideoChatView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/skins/BBBLogoSkinTest.as b/tests/org/bigbluebutton/view/skins/BBBLogoSkinTest.as new file mode 100644 index 0000000..f9e305c --- /dev/null +++ b/tests/org/bigbluebutton/view/skins/BBBLogoSkinTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.skins +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class BBBLogoSkinTest + { + protected var instance:BBBLogoSkin; + + [Before] + public function setUp():void + { + instance = new BBBLogoSkin(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfBBBLogoSkin():void + { + assertTrue("instance is BBBLogoSkin", instance is BBBLogoSkin); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/skins/CommonButtonSkinTest.as b/tests/org/bigbluebutton/view/skins/CommonButtonSkinTest.as new file mode 100644 index 0000000..2418bb7 --- /dev/null +++ b/tests/org/bigbluebutton/view/skins/CommonButtonSkinTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.skins +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class CommonButtonSkinTest + { + protected var instance:CommonButtonSkin; + + [Before] + public function setUp():void + { + instance = new CommonButtonSkin(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfCommonButtonSkin():void + { + assertTrue("instance is CommonButtonSkin", instance is CommonButtonSkin); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} diff --git a/tests/org/bigbluebutton/view/skins/IconSkinTest.as b/tests/org/bigbluebutton/view/skins/IconSkinTest.as new file mode 100644 index 0000000..a4bf73b --- /dev/null +++ b/tests/org/bigbluebutton/view/skins/IconSkinTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.skins +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class IconSkinTest + { + protected var instance:IconSkin; + + [Before] + public function setUp():void + { + instance = new IconSkin(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfIconSkin():void + { + assertTrue("instance is IconSkin", instance is IconSkin); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} diff --git a/tests/org/bigbluebutton/view/skins/LogoutButtonSkinTest.as b/tests/org/bigbluebutton/view/skins/LogoutButtonSkinTest.as new file mode 100644 index 0000000..54e9eda --- /dev/null +++ b/tests/org/bigbluebutton/view/skins/LogoutButtonSkinTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.skins +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class LogoutButtonSkinTest + { + protected var instance:LogoutButtonSkin; + + [Before] + public function setUp():void + { + instance = new LogoutButtonSkin(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLogoutButtonSkin():void + { + assertTrue("instance is LogoutButtonSkin", instance is LogoutButtonSkin); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} diff --git a/tests/org/bigbluebutton/view/skins/NavigationButtonSkinTest.as b/tests/org/bigbluebutton/view/skins/NavigationButtonSkinTest.as new file mode 100644 index 0000000..075d749 --- /dev/null +++ b/tests/org/bigbluebutton/view/skins/NavigationButtonSkinTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.skins +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class NavigationButtonSkinTest + { + protected var instance:NavigationButtonSkin; + + [Before] + public function setUp():void + { + instance = new NavigationButtonSkin(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfNavigationButtonSkin():void + { + assertTrue("instance is NavigationButtonSkin", instance is NavigationButtonSkin); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/skins/ProfileSettingsButtonSkinTest.as b/tests/org/bigbluebutton/view/skins/ProfileSettingsButtonSkinTest.as new file mode 100644 index 0000000..8e3e57f --- /dev/null +++ b/tests/org/bigbluebutton/view/skins/ProfileSettingsButtonSkinTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.skins +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class ProfileSettingsButtonSkinTest + { + protected var instance:ProfileSettingsButtonSkin; + + [Before] + public function setUp():void + { + instance = new ProfileSettingsButtonSkin(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfProfileSettingsButtonSkin():void + { + assertTrue("instance is ProfileSettingsButtonSkin", instance is ProfileSettingsButtonSkin); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/skins/ProfileViewContainerSkinTest.as b/tests/org/bigbluebutton/view/skins/ProfileViewContainerSkinTest.as new file mode 100644 index 0000000..31696be --- /dev/null +++ b/tests/org/bigbluebutton/view/skins/ProfileViewContainerSkinTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.skins +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class ProfileViewContainerSkinTest + { + protected var instance:ProfileViewContainerSkin; + + [Before] + public function setUp():void + { + instance = new ProfileViewContainerSkin(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfProfileViewContainerSkin():void + { + assertTrue("instance is ProfileViewContainerSkin", instance is ProfileViewContainerSkin); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/skins/RadioButtonSkinTest.as b/tests/org/bigbluebutton/view/skins/RadioButtonSkinTest.as new file mode 100644 index 0000000..3367ba4 --- /dev/null +++ b/tests/org/bigbluebutton/view/skins/RadioButtonSkinTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.skins +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class RadioButtonSkinTest + { + protected var instance:RadioButtonSkin; + + [Before] + public function setUp():void + { + instance = new RadioButtonSkin(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfRadioButtonSkin():void + { + assertTrue("instance is RadioButtonSkin", instance is RadioButtonSkin); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/skins/TopButtonSkinTest.as b/tests/org/bigbluebutton/view/skins/TopButtonSkinTest.as new file mode 100644 index 0000000..3b5b424 --- /dev/null +++ b/tests/org/bigbluebutton/view/skins/TopButtonSkinTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.skins +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class TopButtonSkinTest + { + protected var instance:TopButtonSkin; + + [Before] + public function setUp():void + { + instance = new TopButtonSkin(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfTopButtonSkin():void + { + assertTrue("instance is TopButtonSkin", instance is TopButtonSkin); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/IMicButtonTest.as b/tests/org/bigbluebutton/view/ui/IMicButtonTest.as new file mode 100644 index 0000000..07db3c6 --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/IMicButtonTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.view.ui +{ + import org.bigbluebutton.core.view.IView; + import org.flexunit.asserts.assertTrue; + + public class IMicButtonTest + { + protected var instance:IMicButton; + + [Before] + public function setUp():void + { + instance = new MicButton(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMicButton():void + { + assertTrue("instance is MicButton", instance is MicButton); + } + + [Test] + public function instantiated_implementsIView():void + { + assertTrue("instance implements IView", instance is IView); + } + } +} diff --git a/tests/org/bigbluebutton/view/ui/INavigationButtonTest.as b/tests/org/bigbluebutton/view/ui/INavigationButtonTest.as new file mode 100644 index 0000000..e8a6432 --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/INavigationButtonTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.view.ui +{ + import org.bigbluebutton.core.view.IView; + import org.flexunit.asserts.assertTrue; + + public class INavigationButtonTest + { + protected var instance:INavigationButton; + + [Before] + public function setUp():void + { + instance = new NavigationButton(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfNavigationButton():void + { + assertTrue("instance is NavigationButton", instance is NavigationButton); + } + + [Test] + public function instantiated_implementsIView():void + { + assertTrue("instance implements IView", instance is IView); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/ISwapCameraButtonTest.as b/tests/org/bigbluebutton/view/ui/ISwapCameraButtonTest.as new file mode 100644 index 0000000..ce3fde3 --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/ISwapCameraButtonTest.as @@ -0,0 +1,34 @@ +package org.bigbluebutton.view.ui +{ + import org.bigbluebutton.core.view.IView; + import org.flexunit.asserts.assertTrue; + + public class ISwapCameraButtonTest + { + protected var instance:ISwapCameraButton; + + [Before] + public function setUp():void + { + instance = new SwapCameraButton(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSwapCameraButton():void + { + assertTrue("instance is SwapCameraButton", instance is SwapCameraButton); + } + + [Test] + public function instantiated_implementsIView():void + { + assertTrue("instance implements IView", instance is IView); + } + } +} diff --git a/tests/org/bigbluebutton/view/ui/MicButtonConfigTest.as b/tests/org/bigbluebutton/view/ui/MicButtonConfigTest.as new file mode 100644 index 0000000..b79fc29 --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/MicButtonConfigTest.as @@ -0,0 +1,137 @@ +package org.bigbluebutton.view.ui +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.command.MicrophoneMuteSignal; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.commandCenter.dsl.ICommandMapper; + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class MicButtonConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + [Mock] + public var commandMapper:ICommandMapper; + + private static var TIMEOUT:Number = 5000; + + protected var instance:MicButtonConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper, ICommandMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new MicButtonConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMicButtonConfig():void + { + assertTrue("instance is MicButtonConfig", instance is MicButtonConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IMicButton).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(MicrophoneMuteSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IMicButton).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(MicrophoneMuteSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + [Test] + public function executed_callsSignalCommandMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IMicButton).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(MicrophoneMuteSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.signalCommandMap, received().method('map')); + } + + [Test] + public function executed_callsCommandMapperToCommandMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(IMicButton).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(MicrophoneMuteSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(commandMapper, received().method('toCommand')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/MicButtonConfigTests.as b/tests/org/bigbluebutton/view/ui/MicButtonConfigTests.as deleted file mode 100644 index dbc7f4c..0000000 --- a/tests/org/bigbluebutton/view/ui/MicButtonConfigTests.as +++ /dev/null @@ -1,19 +0,0 @@ -package org.bigbluebutton.view.ui -{ - import org.hamcrest.assertThat; - import org.hamcrest.object.notNullValue; - - import robotlegs.bender.framework.api.IConfig; - - public class MicButtonConfigTests - { - /** - * Tests that the TodoFormConfig class implements IConfig. - */ - [Test] - public function implements_expectedInterface(): void - { - assertThat(new MicButtonConfig() as IConfig, notNullValue()); - } - } -} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/MicButtonMediatorTest.as b/tests/org/bigbluebutton/view/ui/MicButtonMediatorTest.as new file mode 100644 index 0000000..e655c11 --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/MicButtonMediatorTest.as @@ -0,0 +1,87 @@ +package org.bigbluebutton.view.ui +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.model.UserSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.ISignal; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class MicButtonMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:MicButton; + + [Mock] + public var userSession:UserSession; + + [Mock] + public var userList:UserList; + + [Mock] + public var userChangeSignal:ISignal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:MicButtonMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(MicButton, UserSession, Signal), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new MicButtonMediator(); + + instance.view = this.view; + instance.userSession = this.userSession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMicButtonMediator():void + { + assertTrue("instance is MicButtonMediator", instance is MicButtonMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userSession).getter("userList").returns(this.userList); + stub(instance.userSession.userList).getter("userChangeSignal").returns(this.userChangeSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/MicButtonMediatorTests.as b/tests/org/bigbluebutton/view/ui/MicButtonMediatorTests.as deleted file mode 100644 index 26bbda6..0000000 --- a/tests/org/bigbluebutton/view/ui/MicButtonMediatorTests.as +++ /dev/null @@ -1,94 +0,0 @@ -package org.bigbluebutton.view.ui -{ - import org.hamcrest.assertThat; - import org.hamcrest.object.isTrue; - import org.bigbluebutton.command.MicrophoneOnSignal; - import org.bigbluebutton.testing.MediatorTests; - import org.mockito.integrations.flexunit4.MockitoRule; - import org.mockito.integrations.given; - import org.mockito.integrations.mock; - import org.mockito.integrations.times; - import org.mockito.integrations.verify; - import org.osflash.signals.Signal; - - [Mock(type="org.bigbluebutton.command.TurnOnMicSignal")] - [Mock(type="org.bigbluebutton.command.TurnOffMicSignal")] - [Mock(type="org.bigbluebutton.view.mic.api.IMicButton")] - [Mock(type="robotlegs.bender.extensions.localEventMap.api.IEventMap")] - public class MicButtonMediatorTests extends MediatorTests - { - private var _micButton: IMicButton; - - [Rule] - public var mockitoRule: MockitoRule = new MockitoRule(); - - /** - * Tests when the mediator is destroyed the - * view is disposed of. - */ - [Test] - public function destory_ViewIsDisposed(): void - { - var micButtonMediator: MicButtonMediator = createMediator(); - micButtonMediator.destroy(); - verify(times(1)).that(_micButton.dispose()); - } - - /** - * Tests when the mediator is destory the dependencies - * are nullified. - */ - [Test] - public function destory_NullifiesDependencies(): void - { - var micButtonMediator: MicButtonMediator = createMediator(); - micButtonMediator.destroy(); - assertThat(!micButtonMediator.view, isTrue()); - } - - /** - * Creates the test subject with its dependencies. - */ - private function createMediator(obj: * = null): MicButtonMediator - { - var micButtonMediator: MicButtonMediator = new MicButtonMediator(); - micButtonMediator.view = createMockOfMicButton(); - micButtonMediator.microphoneEnableSignal = mock(MicrophoneOnSignal); - - //given(micButtonMediator.view.turnOffMicSignal).willReturn(activeTodo); - - setupMediator(micButtonMediator); - - micButtonMediator.initialize(); - - return micButtonMediator; - } - - /** - * Creates a mock of the TodoFormView with its signals set. - */ - private function createMockOfMicButton(): IMicButton - { - _micButton = mock(IMicButton); - given(_micButton.turnOffMicSignal).willReturn(new Signal()); - given(_micButton.turnOnMicSignal).willReturn(new Signal()); - return _micButton; - } - - /** - * Simulates the user wanting to cancel the todo form. - */ - private function simulateTurnOffMic(): void - { - (_micButton.turnOffMicSignal as Signal).dispatch(); - } - - /** - * Simulates the user wanting to cancel the todo form. - */ - private function simulateTurnOnMic(): void - { - (_micButton.turnOnMicSignal as Signal).dispatch(); - } - } -} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/MicButtonTest.as b/tests/org/bigbluebutton/view/ui/MicButtonTest.as new file mode 100644 index 0000000..4d6f84e --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/MicButtonTest.as @@ -0,0 +1,48 @@ +package org.bigbluebutton.view.ui +{ + import org.flexunit.asserts.assertFalse; + import org.flexunit.asserts.assertTrue; + + import spark.components.Button; + + public class MicButtonTest + { + protected var instance:MicButton; + + [Before] + public function setUp():void + { + instance = new MicButton(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfMicButton():void + { + assertTrue("instance is MicButton", instance is MicButton); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Button component", instance is Button); + } + + [Test] + public function instantiated_implementsIMicButton():void + { + assertTrue("instance implements IMicButton", instance is IMicButton); + } + + [Test] + public function instantiated_visibleByDefault():void + { + assertTrue("Mic button is visible by default", instance.visible); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/MicButtonTests.as b/tests/org/bigbluebutton/view/ui/MicButtonTests.as deleted file mode 100644 index 2dd6cba..0000000 --- a/tests/org/bigbluebutton/view/ui/MicButtonTests.as +++ /dev/null @@ -1,110 +0,0 @@ -package org.bigbluebutton.view.ui -{ - import flash.events.MouseEvent; - - import org.fluint.uiImpersonation.UIImpersonator; - import org.hamcrest.assertThat; - import org.hamcrest.object.equalTo; - import org.hamcrest.object.isFalse; - import org.hamcrest.object.isTrue; - import org.hamcrest.object.notNullValue; - import org.bigbluebutton.testing.ViewTests; - import org.osflash.signals.utils.proceedOnSignal; - - - public class MicButtonTests extends ViewTests - { - [After] - override public function after(): void - { - //super.after(); - UIImpersonator.removeAllElements(); - } - - /** - * Tests that the MicButton implements ITemplateView. - */ - [Test] - public function implements_expectedInterface(): void - { - assertThat(createView() as IMicButton, notNullValue()); - } - - /** - * By default the turnOnMicrofoneSignal should not be null. - */ - [Test] - public function default_turnOnMicSignalIsNotNull(): void - { - assertThat(createView().turnOnMicSignal, notNullValue()); - } - - /** - * By default the turnOffMicrofoneSignal should not be null. - */ - [Test] - public function default_turnOffMicSignalIsNotNull(): void - { - assertThat(createView().turnOffMicSignal, notNullValue()); - } - - /** - * By default the MicButton should not be enabled. - */ - [Test] - public function default_micButtonShouldBeDisabled(): void - { - assertThat(createView().enabled, isTrue()); - } - - /** - * Tests that when the MicButton is clicked the turnOnMicSignal - * is dispatched. - */ - [Test(async)] - public function clickCancelButton_DispatchesCancelSignal(): void - { - var micButton: MicButton = createView(); - proceedOnSignal(this, micButton.turnOffMicSignal); - click(micButton); - } - - /** - * Disposing of the view should remove all the listeners on the - * turnOffMicSignal. - */ - [Test] - public function dispose_RemovesListenersToTurnOffMicSignal(): void - { - var micButton: MicButton = createView(); - micButton.turnOffMicSignal.add(dummyMethod); - micButton.dispose(); - - assertThat(micButton.turnOffMicSignal.numListeners, equalTo(0)); - } - - /** - * Disposing of the view should remove all the listeners on the - * turnOnMicSignal. - */ - [Test] - public function dispose_RemovesListenersToTurnOnMicSignal(): void - { - var micButton: MicButton = createView(); - micButton.turnOnMicSignal.add(dummyMethod); - micButton.dispose(); - - assertThat(micButton.turnOnMicSignal.numListeners, equalTo(0)); - } - - /** - * Creates the test subject. - */ - private function createView(): MicButton - { - var micButton: MicButton = new MicButton(); - UIImpersonator.addElement(micButton); - return micButton; - } - } -} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/NavigationButtonConfigTest.as b/tests/org/bigbluebutton/view/ui/NavigationButtonConfigTest.as new file mode 100644 index 0000000..52e241d --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/NavigationButtonConfigTest.as @@ -0,0 +1,137 @@ +package org.bigbluebutton.view.ui +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.command.NavigateToSignal; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.commandCenter.dsl.ICommandMapper; + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class NavigationButtonConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + [Mock] + public var commandMapper:ICommandMapper; + + private static var TIMEOUT:Number = 5000; + + protected var instance:NavigationButtonConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper, ICommandMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new NavigationButtonConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfNavigationButtonConfig():void + { + assertTrue("instance is NavigationButtonConfig", instance is NavigationButtonConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(INavigationButton).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(NavigateToSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(INavigationButton).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(NavigateToSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + [Test] + public function executed_callsSignalCommandMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(INavigationButton).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(NavigateToSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.signalCommandMap, received().method('map')); + } + + [Test] + public function executed_callsCommandMapperToCommandMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(INavigationButton).returns(mediatorMapper); + stub(instance.signalCommandMap).method("map").args(NavigateToSignal).returns(commandMapper); + + // Act + instance.configure(); + + // Assert + assertThat(commandMapper, received().method('toCommand')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/NavigationButtonMediatorTest.as b/tests/org/bigbluebutton/view/ui/NavigationButtonMediatorTest.as new file mode 100644 index 0000000..ca703fd --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/NavigationButtonMediatorTest.as @@ -0,0 +1,86 @@ +package org.bigbluebutton.view.ui +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.model.UserUISession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class NavigationButtonMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:NavigationButton; + + [Mock] + public var userSession:UserUISession; + + [Mock] + public var pageChangedSignal:Signal; + + [Mock] + public var navigationSignal:Signal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:NavigationButtonMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(NavigationButton, UserUISession, UserList, Signal), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new NavigationButtonMediator(); + + instance.view = this.view; + instance.userSession = this.userSession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfNavigationButtonMediator():void + { + assertTrue("instance is NavigationButtonMediator", instance is NavigationButtonMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userSession).getter("pageChangedSignal").returns(this.pageChangedSignal); + stub(instance.view).getter("navigationSignal").returns(this.navigationSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/ui/NavigationButtonTest.as b/tests/org/bigbluebutton/view/ui/NavigationButtonTest.as new file mode 100644 index 0000000..29be48d --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/NavigationButtonTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.ui +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Button; + + public class NavigationButtonTest + { + protected var instance:NavigationButton; + + [Before] + public function setUp():void + { + instance = new NavigationButton(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfNavigationButton():void + { + assertTrue("instance is NavigationButton", instance is NavigationButton); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Button component", instance is Button); + } + + [Test] + public function instantiated_implementsINavigationButton():void + { + assertTrue("instance implements INavigationButton", instance is INavigationButton); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/SwapCameraButtonTest.as b/tests/org/bigbluebutton/view/ui/SwapCameraButtonTest.as new file mode 100644 index 0000000..450401e --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/SwapCameraButtonTest.as @@ -0,0 +1,47 @@ +package org.bigbluebutton.view.ui +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Button; + + public class SwapCameraButtonTest + { + protected var instance:SwapCameraButton; + + [Before] + public function setUp():void + { + instance = new SwapCameraButton(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSwapCameraButton():void + { + assertTrue("instance is SwapCameraButton", instance is SwapCameraButton); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Button component", instance is Button); + } + + [Test] + public function instantiated_implementsISwapCameraButton():void + { + assertTrue("instance implements ISwapCameraButton", instance is ISwapCameraButton); + } + + [Test] + public function instantiated_visibleByDefault():void + { + assertTrue("SwapCamera button is visible by default", instance.visible); + } + } +} diff --git a/tests/org/bigbluebutton/view/ui/SwapCameraConfigTest.as b/tests/org/bigbluebutton/view/ui/SwapCameraConfigTest.as new file mode 100644 index 0000000..3d6a421 --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/SwapCameraConfigTest.as @@ -0,0 +1,107 @@ +package org.bigbluebutton.view.ui +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.command.NavigateToSignal; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.commandCenter.dsl.ICommandMapper; + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class SwapCameraConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + [Mock] + public var commandMapper:ICommandMapper; + + private static var TIMEOUT:Number = 5000; + + protected var instance:SwapCameraConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper, ICommandMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new SwapCameraConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSwapCameraConfig():void + { + assertTrue("instance is SwapCameraConfig", instance is SwapCameraConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(ISwapCameraButton).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(ISwapCameraButton).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/SwapCameraMediatorTest.as b/tests/org/bigbluebutton/view/ui/SwapCameraMediatorTest.as new file mode 100644 index 0000000..369456c --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/SwapCameraMediatorTest.as @@ -0,0 +1,85 @@ +package org.bigbluebutton.view.ui +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserList; + import org.bigbluebutton.model.UserSession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class SwapCameraMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:SwapCameraButton; + + [Mock] + public var userList:UserList; + + [Mock] + public var userSession:UserSession; + + [Mock] + public var userChangeSignal:Signal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:SwapCameraMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(SwapCameraButton, UserSession, UserList, Signal), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new SwapCameraMediator(); + + instance.view = this.view; + instance.userSession = this.userSession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfSwapCameraMediator():void + { + assertTrue("instance is SwapCameraMediator", instance is SwapCameraMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + stub(instance.userSession).getter("userList").returns(this.userList); + stub(instance.userSession.userList).getter("userChangeSignal").returns(this.userChangeSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/VideoTest.as b/tests/org/bigbluebutton/view/ui/VideoTest.as new file mode 100644 index 0000000..81ae79b --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/VideoTest.as @@ -0,0 +1,39 @@ +package org.bigbluebutton.view.ui +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class VideoTest + { + protected var instance:Video; + + [Before] + public function setUp():void + { + instance = new Video(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + // TODO : addChild in the Video constructor throws the exception, need to investigate + + [Ignore] + [Test] + public function instantiated_isInstanceOfVideo():void + { + assertTrue("instance is Video", instance is Video); + } + + [Ignore] + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/loading/ILoadingScreenTest.as b/tests/org/bigbluebutton/view/ui/loading/ILoadingScreenTest.as new file mode 100644 index 0000000..62d6f43 --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/loading/ILoadingScreenTest.as @@ -0,0 +1,27 @@ +package org.bigbluebutton.view.ui.loading +{ + import org.flexunit.asserts.assertTrue; + + public class ILoadingScreenTest + { + protected var instance:ILoadingScreen; + + [Before] + public function setUp():void + { + instance = new LoadingScreen(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoadingScreen():void + { + assertTrue("instance is LoadingScreen", instance is LoadingScreen); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/loading/LoadingScreenBaseTest.as b/tests/org/bigbluebutton/view/ui/loading/LoadingScreenBaseTest.as new file mode 100644 index 0000000..ebe1ec2 --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/loading/LoadingScreenBaseTest.as @@ -0,0 +1,35 @@ +package org.bigbluebutton.view.ui.loading +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class LoadingScreenBaseTest + { + protected var instance:LoadingScreenBase; + + [Before] + public function setUp():void + { + instance = new LoadingScreenBase(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoadingScreenBase():void + { + assertTrue("instance is LoadingScreenBase", instance is LoadingScreenBase); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + } +} diff --git a/tests/org/bigbluebutton/view/ui/loading/LoadingScreenConfigTest.as b/tests/org/bigbluebutton/view/ui/loading/LoadingScreenConfigTest.as new file mode 100644 index 0000000..b45bcc6 --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/loading/LoadingScreenConfigTest.as @@ -0,0 +1,102 @@ +package org.bigbluebutton.view.ui.loading +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.received; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.hamcrest.assertThat; + + import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap; + import robotlegs.bender.extensions.mediatorMap.dsl.IMediatorMapper; + import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap; + import robotlegs.bender.framework.api.IConfig; + import robotlegs.bender.framework.api.IInjector; + + public class LoadingScreenConfigTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var injector:IInjector; + + [Mock] + public var mediatorMap:IMediatorMap; + + [Mock] + public var mediatorMapper:IMediatorMapper; + + [Mock] + public var signalCommandMap:ISignalCommandMap; + + private static var TIMEOUT:Number = 5000; + + protected var instance:LoadingScreenConfig; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(IInjector, IMediatorMap, ISignalCommandMap, IMediatorMapper), Event.COMPLETE, TIMEOUT, timeoutHandler); + instance = new LoadingScreenConfig(); + + instance.injector = this.injector; + instance.mediatorMap = this.mediatorMap; + instance.signalCommandMap = this.signalCommandMap; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoadingScreenConfig():void + { + assertTrue("instance is LoadingScreenConfig", instance is LoadingScreenConfig); + } + + [Test] + public function instantiated_implementsIConfigInterface():void + { + assertTrue("instance implements IConfig interface", instance is IConfig); + } + + [Test] + public function executed_callsMediatorMapMapMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(ILoadingScreen).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(instance.mediatorMap, received().method('map')); + } + + [Test] + public function executed_callsMediatorMapperToMediatorMethod():void + { + // Arrange + stub(instance.mediatorMap).method("map").args(ILoadingScreen).returns(mediatorMapper); + + // Act + instance.configure(); + + // Assert + assertThat(mediatorMapper, received().method('toMediator')); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} diff --git a/tests/org/bigbluebutton/view/ui/loading/LoadingScreenMediatorTest.as b/tests/org/bigbluebutton/view/ui/loading/LoadingScreenMediatorTest.as new file mode 100644 index 0000000..6d90327 --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/loading/LoadingScreenMediatorTest.as @@ -0,0 +1,81 @@ +package org.bigbluebutton.view.ui.loading +{ + import flash.events.Event; + + import mockolate.prepare; + import mockolate.runner.MockolateRule; + import mockolate.stub; + + import org.bigbluebutton.model.UserUISession; + import org.flexunit.asserts.assertTrue; + import org.flexunit.asserts.fail; + import org.flexunit.async.Async; + import org.osflash.signals.Signal; + + import robotlegs.bender.bundles.mvcs.Mediator; + + public class LoadingScreenMediatorTest + { + [Rule] + public var mockolateRule:MockolateRule = new MockolateRule(); + + [Mock] + public var view:LoadingScreen; + + [Mock] + public var userUISession:UserUISession; + + [Mock] + public var loadingSignal:Signal; + + private static var TIMEOUT:Number = 5000; + + protected var instance:LoadingScreenMediator; + + [Before(async)] + public function setUp():void + { + Async.proceedOnEvent(this, prepare(LoadingScreen, UserUISession, Signal), Event.COMPLETE, TIMEOUT, timeoutHandler) + instance = new LoadingScreenMediator(); + + instance.view = this.view; + instance.userUISettings = this.userUISession; + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoadingScreenMediator():void + { + assertTrue("instance is LoadingScreenMediator", instance is LoadingScreenMediator); + } + + [Test] + public function instantiated_isRobotlegsMediator():void + { + assertTrue("instance is Robotlegs Mediator", instance is Mediator); + } + + [Test] + public function destroyed_viewIsDestroyed():void + { + // Arrange + stub(instance.userUISettings).getter("loadingSignal").returns(this.loadingSignal); + + // Act + instance.destroy(); + + // Assert + assertTrue("view is destroyed when mediator is destroyed", instance.view == null); + } + + protected function timeoutHandler(passThroughData:Object):void + { + fail("Timeout occured during setUp() method"); + } + } +} \ No newline at end of file diff --git a/tests/org/bigbluebutton/view/ui/loading/LoadingScreenTest.as b/tests/org/bigbluebutton/view/ui/loading/LoadingScreenTest.as new file mode 100644 index 0000000..9a5a1bc --- /dev/null +++ b/tests/org/bigbluebutton/view/ui/loading/LoadingScreenTest.as @@ -0,0 +1,41 @@ +package org.bigbluebutton.view.ui.loading +{ + import org.flexunit.asserts.assertTrue; + + import spark.components.Group; + + public class LoadingScreenTest + { + protected var instance:LoadingScreen; + + [Before] + public function setUp():void + { + instance = new LoadingScreen(); + } + + [After] + public function tearDown():void + { + instance = null; + } + + [Test] + public function instantiated_isInstanceOfLoadingScreen():void + { + assertTrue("instance is LoadingScreen", instance is LoadingScreen); + } + + [Test] + public function instantiated_isSparkComponent():void + { + assertTrue("instance is Spark Group component", instance is Group); + } + + [Test] + public function instantiated_implementsILoadingScreen():void + { + assertTrue("instance implements ILoadingScreen", instance is ILoadingScreen); + } + } +} \ No newline at end of file