using NUnit.Framework; using System.Collections; using System.IO; using UnityEditor; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.TestTools; /// /// Test the PanelMultipleChoice, PanelWithImage, and PanelWithVideoAndImage classes /// [TestFixture] public class CoursePanelsTests { /// /// Setup the environment before each test /// [UnitySetUp] public IEnumerator SetupFunction() { string path = $"{Application.persistentDataPath}/wesign_unit_test.json"; string oneUser = $"{{\"version\":1537,\"users\":[{{\"entries\":[],\"username\":\"TEST\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}}"; File.WriteAllText(path, oneUser); PersistentDataController.PATH = path; PersistentDataController.GetInstance().Load(); AssetDatabase.LoadAssetAtPath("Assets/Accounts/ScriptableObjects/UserAvatarList.asset").Awake(); SceneManager.LoadScene("Common/Scenes/MainMenuScreen"); yield return null; var mainMenuScreen = GameObject.FindObjectOfType(); mainMenuScreen.GotoCourses(); yield return null; var courseMenuScreen = GameObject.FindObjectOfType(); var courseList = courseMenuScreen.courseList; Assert.IsNotNull(courseList, "Course was not started."); courseList.SetCurrentCourse(0); SystemController.GetInstance().LoadNextScene("Common/Scenes/CourseActivityScreen"); yield return null; var courseActivityScreen = GameObject.FindObjectOfType(); Assert.IsNotNull(courseActivityScreen); courseActivityScreen.StartCourse(); yield return null; } /// /// Cleanup after testing /// [TearDown] public void TearDown_PanelTests() { PersistentDataController.PATH = null; } /// /// Test pausing/resuming the video in all course panels /// [UnityTest] public IEnumerator PlayPauseTest() { var coursesController = GameObject.FindObjectOfType(); Assert.IsNotNull(coursesController); yield return null; PanelWithVideoAndImage panel = GameObject.FindObjectOfType(); Assert.IsNotNull(panel); panel.TogglePlayPause(); yield return null; Assert.IsFalse(panel.videoPlayer.isPlaying); panel.TogglePlayPause(); yield return null; Assert.IsTrue(panel.videoPlayer.isPlaying); yield return coursesController.SummonMultipleChoice(); PanelMultipleChoice panel2 = GameObject.FindObjectOfType(); Assert.IsNotNull(panel2); panel2.TogglePlayPause(); yield return null; Assert.IsFalse(panel2.videoPlayer.isPlaying); panel2.TogglePlayPause(); yield return null; Assert.IsTrue(panel2.videoPlayer.isPlaying); yield return null; } }