diff --git a/Assets/Common/Scripts/BootScreen.cs b/Assets/Common/Scripts/BootScreen.cs
index b1a7c71..ff2f9e6 100644
--- a/Assets/Common/Scripts/BootScreen.cs
+++ b/Assets/Common/Scripts/BootScreen.cs
@@ -31,7 +31,21 @@ public class BootScreen : MonoBehaviour
{
if (0 < WebCamTexture.devices.Length)
{
- SystemController.GetInstance().SwapScene("Common/Scenes/MainMenuScreen");
+ WebCamTexture webcamTexture = new WebCamTexture();
+ webcamTexture.deviceName = WebCamTexture.devices[0].name;
+
+ webcamTexture.Play();
+ yield return new WaitForSeconds(0.1f); // Wait a little for the webcam to start
+
+ if (webcamTexture.isPlaying)
+ {
+ webcamTexture.Stop();
+ SystemController.GetInstance().SwapScene("Common/Scenes/MainMenuScreen");
+ }
+ else
+ {
+ errorText.text = "Zorg ervoor dat je webcam niet in gebruik is door een andere applicatie!";
+ }
}
else
{
@@ -43,4 +57,6 @@ public class BootScreen : MonoBehaviour
errorText.text = "Zorg ervoor dat deze applicatie toegang heeft tot je webcam!";
}
}
+
+
}
diff --git a/Assets/Common/Scripts/UserButton.cs b/Assets/Common/Scripts/UserButton.cs
index ee25a5e..1958b9c 100644
--- a/Assets/Common/Scripts/UserButton.cs
+++ b/Assets/Common/Scripts/UserButton.cs
@@ -3,7 +3,7 @@ using UnityEngine;
using UnityEngine.UI;
///
-/// Handles actions when a user presses the account button (upper left corner)
+/// Handles actions when a user presses the account button (upper right corner)
///
public class UserButton : MonoBehaviour
{
diff --git a/Assets/Common/Tests/PlayMode/BackButtonTests.cs b/Assets/Common/Tests/PlayMode/BackButtonTests.cs
index a802033..fbc3f64 100644
--- a/Assets/Common/Tests/PlayMode/BackButtonTests.cs
+++ b/Assets/Common/Tests/PlayMode/BackButtonTests.cs
@@ -7,12 +7,15 @@ using UnityEngine.TestTools;
public class BackButtonTests
{
-
+ ///
+ /// Setup the environment before each test
+ ///
+ ///
[UnitySetUp]
public IEnumerator SetupFunction()
{
string path = $"{Application.persistentDataPath}/wesign_unit_test.json";
- string oneUser = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[{{\"entries\":[],\"username\":\"TEST\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}";
+ string oneUser = $"{{\"version\":1027,\"users\":[{{\"entries\":[],\"username\":\"TEST\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}";
File.WriteAllText(path, oneUser);
PersistentDataController.PATH = path;
@@ -24,15 +27,28 @@ public class BackButtonTests
yield return new WaitForSeconds(0.2f);
}
+ ///
+ /// Cleanup after testing
+ ///
+ [TearDown]
+ public void TearDown_BackButtonTests()
+ {
+ PersistentDataController.PATH = null;
+ }
+
+ ///
+ /// Tests returning to the previous screen with the backbutton
+ ///
+ ///
[UnityTest]
public IEnumerator BackTest()
{
- var backButton = (BackButton)GameObject.FindObjectOfType(typeof(BackButton));
+ var backButton = GameObject.FindObjectOfType ();
backButton.Back();
yield return new WaitForSeconds(0.2f);
- var mainMenuScreen = (MainMenuScreen)GameObject.FindObjectOfType(typeof(MainMenuScreen));
+ var mainMenuScreen = GameObject.FindObjectOfType();
Assert.IsNotNull(mainMenuScreen);
}
}
diff --git a/Assets/Common/Tests/PlayMode/CommonPlayMode.asmdef b/Assets/Common/Tests/PlayMode/CommonPlayMode.asmdef
index 1f100b1..b1b5755 100644
--- a/Assets/Common/Tests/PlayMode/CommonPlayMode.asmdef
+++ b/Assets/Common/Tests/PlayMode/CommonPlayMode.asmdef
@@ -10,7 +10,10 @@
"Unity.TextMeshPro",
"AccountsScripts",
"SignPredictor",
- "ArchitectureScripts"
+ "ArchitectureScripts",
+ "HangmanScripts",
+ "MinigameScripts",
+ "SpellingBeeScripts"
],
"includePlatforms": [],
"excludePlatforms": [],
diff --git a/Assets/Common/Tests/PlayMode/CourseActivityTests.cs b/Assets/Common/Tests/PlayMode/CourseActivityTests.cs
index 15829a0..77f90b1 100644
--- a/Assets/Common/Tests/PlayMode/CourseActivityTests.cs
+++ b/Assets/Common/Tests/PlayMode/CourseActivityTests.cs
@@ -7,29 +7,80 @@ using UnityEngine.TestTools;
public class CourseActivityTests
{
-
+ ///
+ /// Setup the environment before each test
+ ///
+ ///
[UnitySetUp]
public IEnumerator SetupFunction()
{
string path = $"{Application.persistentDataPath}/wesign_unit_test.json";
- string oneUser = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[{{\"entries\":[],\"username\":\"TEST\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}";
+ string oneUser = $"{{\"version\":1027,\"users\":[{{\"entries\":[],\"username\":\"TEST\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}";
File.WriteAllText(path, oneUser);
PersistentDataController.PATH = path;
PersistentDataController.GetInstance().Load();
AssetDatabase.LoadAssetAtPath("Assets/Accounts/ScriptableObjects/UserAvatarList.asset").Awake();
- SystemController.GetInstance().LoadNextScene("Common/Scenes/CourseActivityScreen");
+ SystemController.GetInstance().LoadNextScene("Common/Scenes/Boot");
yield return new WaitForSeconds(0.2f);
}
- [UnityTest]
- public IEnumerator StartCoursesTests()
+ ///
+ /// Cleanup after testing
+ ///
+ [TearDown]
+ public void TearDown_CourseActivityTests()
{
- var courseActivityScreen = (CourseActivityScreen)GameObject.FindObjectOfType(typeof(CourseActivityScreen));
- courseActivityScreen.StartCourse();
+ PersistentDataController.PATH = null;
+ }
+ ///
+ /// Full tests of the CoursesActivityScreen
+ ///
+ ///
+ [UnityTest]
+ public IEnumerator CoursesActivityTest()
+ {
+ var mainMenuScreen = GameObject.FindObjectOfType();
+ mainMenuScreen.GotoCourses();
yield return new WaitForSeconds(0.2f);
- var templateCourse = (CoursesController)GameObject.FindObjectOfType(typeof(CoursesController));
+ var courseMenuScreen = GameObject.FindObjectOfType();
+ Assert.IsNotNull(courseMenuScreen, "Course was not started.");
+
+ var courseList = courseMenuScreen.courseList;
+ Assert.IsNotNull(courseList, "Course was not started.");
+ courseList.SetCurrentCourse(0);
+ SystemController.GetInstance().LoadNextScene("Common/Scenes/CourseActivityScreen");
+
+ yield return new WaitForSeconds(0.2f);
+
+ var courseActivityScreen = GameObject.FindObjectOfType();
+ Assert.IsNotNull(courseActivityScreen);
+ courseActivityScreen.StartCourse();
+ yield return new WaitForSeconds(0.5f);
+
+ var templateCourse = GameObject.FindObjectOfType();
Assert.IsNotNull(templateCourse);
+
+ templateCourse.ReturnToActivityScreen();
+ yield return new WaitForSeconds(0.2f);
+
+ var courseActivityScreen2 = GameObject.FindObjectOfType();
+ Assert.IsNotNull(courseActivityScreen2);
+
+ courseActivityScreen2.ResetCourseProgress();
+ yield return new WaitForSeconds(0.2f);
+
+ var templateCourse2 = GameObject.FindObjectOfType();
+ Assert.IsNotNull(templateCourse2);
+
+ var user = UserList.GetCurrentUser();
+ var progress = user.GetCourseProgress(0);
+ progress.progress = 1.00f;
+ progress.inUseLearnables = 0;
+
+ templateCourse2.ReturnToActivityScreen();
+ yield return new WaitForSeconds(0.2f);
}
}
+
diff --git a/Assets/Common/Tests/PlayMode/CourseItemTests.cs b/Assets/Common/Tests/PlayMode/CourseItemTests.cs
new file mode 100644
index 0000000..cb816ea
--- /dev/null
+++ b/Assets/Common/Tests/PlayMode/CourseItemTests.cs
@@ -0,0 +1,53 @@
+using NUnit.Framework;
+using UnityEngine.UI;
+using System.Collections;
+using System.IO;
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.SceneManagement;
+using UnityEngine.TestTools;
+
+public class CourseItemTests
+{
+ [UnitySetUp]
+ public IEnumerator SetupFunction()
+ {
+ string path = $"{Application.persistentDataPath}/wesign_unit_test.json";
+ string oneUser = $"{{\"version\":1027,\"users\":[{{\"entries\":[],\"username\":\"TEST\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}";
+
+ File.WriteAllText(path, oneUser);
+ PersistentDataController.PATH = path;
+ PersistentDataController.GetInstance().Load();
+ AssetDatabase.LoadAssetAtPath("Assets/Accounts/ScriptableObjects/UserAvatarList.asset").Awake();
+ SystemController.GetInstance().LoadNextScene("Common/Scenes/CoursesMenuScreen");
+ yield return new WaitForSeconds(0.2f);
+ }
+
+ ///
+ /// Cleanup after testing
+ ///
+ [TearDown]
+ public void TearDown_CourseItemTests()
+ {
+ PersistentDataController.PATH = null;
+ }
+
+ ///
+ /// Test to verify the callback function of a course item button.
+ ///
+ [UnityTest]
+ public IEnumerator CallBackTest()
+ {
+ GameObject buttonObject = GameObject.Find("Course Item(Clone)");
+ Assert.IsNotNull(buttonObject, "Could not find button object");
+
+ Button button = buttonObject.GetComponent