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