44// Disable "missing XML comment" warning for tests. While nice to have, this documentation is not required.
55#pragma warning disable CS1591
66
7+ using MixedReality . Toolkit . Core . Tests ;
8+ using MixedReality . Toolkit . Input ;
79using MixedReality . Toolkit . Input . Tests ;
810using NUnit . Framework ;
11+ using System . Collections ;
12+ using UnityEditor ;
13+ using UnityEngine ;
14+ using UnityEngine . TestTools ;
15+ using UnityEngine . UI ;
16+ using Object = UnityEngine . Object ;
917
1018namespace MixedReality . Toolkit . UX . Runtime . Tests
1119{
12- using Core . Tests ;
13- using Input ;
14- using System ;
15- using System . Collections ;
16- using UnityEditor ;
17- using UnityEngine ;
18- using UnityEngine . TestTools ;
19- using Object = UnityEngine . Object ;
20-
2120 public class SliderTests : BaseRuntimeInputTests
2221 {
23- private const string TouchSliderPrefabPath =
24- "Packages/org.mixedrealitytoolkit.uxcore/Tests/Runtime/Prefabs/TouchSliderTest.prefab" ;
25-
26- private const string GrabSliderPrefabPath =
27- "Packages/org.mixedrealitytoolkit.uxcore/Tests/Runtime/Prefabs/GrabSliderTest.prefab" ;
22+ // Slider/CanvasSlider.prefab
23+ private const string DefaultSliderPrefabGuid = "f64620d502cdf0f429efa27703913cb7" ;
24+ private static readonly string DefaultSliderPrefabPath = AssetDatabase . GUIDToAssetPath ( DefaultSliderPrefabGuid ) ;
2825
2926 private const int HandMovementFrames = 10 ;
3027
@@ -41,7 +38,7 @@ public IEnumerator TouchSlider_MoveRight_ValueIncreasesCorrectly([ValueSource(na
4138 {
4239 InputTestUtilities . InitializeCameraToOriginAndForward ( ) ;
4340
44- var testPrefab = InstantiateSlider ( TouchSliderPrefabPath ) ;
41+ var testPrefab = InstantiateSlider ( DefaultSliderPrefabPath ) ;
4542 testPrefab . transform . position = InputTestUtilities . InFrontOfUser ( new Vector3 ( 0 , 0 , 1 ) ) ;
4643
4744 var slider = testPrefab . GetComponentInChildren < Slider > ( ) ;
@@ -64,10 +61,11 @@ public IEnumerator GrabSlider_MoveRight_ValueIncreasesCorrectly([ValueSource(nam
6461 {
6562 InputTestUtilities . InitializeCameraToOriginAndForward ( ) ;
6663
67- var testPrefab = InstantiateSlider ( GrabSliderPrefabPath ) ;
64+ var testPrefab = InstantiateSlider ( DefaultSliderPrefabPath ) ;
6865 testPrefab . transform . position = InputTestUtilities . InFrontOfUser ( new Vector3 ( 0 , 0 , 1 ) ) ;
6966
7067 var slider = testPrefab . GetComponentInChildren < Slider > ( ) ;
68+ slider . IsTouchable = false ;
7169 slider . MinValue = testCase . MinValue ;
7270 slider . MaxValue = testCase . MaxValue ;
7371 slider . Value = ( ( testCase . MaxValue - testCase . MinValue ) / 2 ) + testCase . MinValue ;
@@ -91,7 +89,7 @@ public IEnumerator TouchSlider_MoveLeft_ValueIncreasesCorrectly([ValueSource(nam
9189 {
9290 InputTestUtilities . InitializeCameraToOriginAndForward ( ) ;
9391
94- var testPrefab = InstantiateSlider ( TouchSliderPrefabPath ) ;
92+ var testPrefab = InstantiateSlider ( DefaultSliderPrefabPath ) ;
9593 testPrefab . transform . position = InputTestUtilities . InFrontOfUser ( new Vector3 ( 0 , 0 , 1 ) ) ;
9694
9795 var slider = testPrefab . GetComponentInChildren < Slider > ( ) ;
@@ -114,10 +112,11 @@ public IEnumerator GrabSlider_MoveLeft_ValueIncreasesCorrectly([ValueSource(name
114112 {
115113 InputTestUtilities . InitializeCameraToOriginAndForward ( ) ;
116114
117- var testPrefab = InstantiateSlider ( GrabSliderPrefabPath ) ;
115+ var testPrefab = InstantiateSlider ( DefaultSliderPrefabPath ) ;
118116 testPrefab . transform . position = InputTestUtilities . InFrontOfUser ( new Vector3 ( 0 , 0 , 1 ) ) ;
119117
120118 var slider = testPrefab . GetComponentInChildren < Slider > ( ) ;
119+ slider . IsTouchable = false ;
121120 slider . MinValue = testCase . MinValue ;
122121 slider . MaxValue = testCase . MaxValue ;
123122 slider . Value = ( ( testCase . MaxValue - testCase . MinValue ) / 2 ) + testCase . MinValue ;
@@ -137,29 +136,36 @@ public IEnumerator GrabSlider_MoveLeft_ValueIncreasesCorrectly([ValueSource(name
137136 Object . Destroy ( testPrefab ) ;
138137 }
139138
140- public struct TestCase
139+ public readonly struct TestCase
141140 {
142- public float MinValue ;
143- public float MaxValue ;
144- public float Expected ;
141+ public float MinValue { get ; }
142+ public float MaxValue { get ; }
143+ public float Expected { get ; }
144+
145+ public TestCase ( float minValue , float maxValue , float expected )
146+ {
147+ MinValue = minValue ;
148+ MaxValue = maxValue ;
149+ Expected = expected ;
150+ }
145151 }
146152
147153 private static IEnumerable MoveRightTestCases ( )
148154 {
149- yield return new TestCase { MinValue = 0 , MaxValue = 1 , Expected = 0.7f } ;
150- yield return new TestCase { MinValue = 0 , MaxValue = 10 , Expected = 7 } ;
151- yield return new TestCase { MinValue = 0 , MaxValue = 0.1f , Expected = 0.07f } ;
152- yield return new TestCase { MinValue = - 1 , MaxValue = 1 , Expected = 0.4f } ;
153- yield return new TestCase { MinValue = - 1 , MaxValue = 0 , Expected = - 0.3f } ;
155+ yield return new TestCase ( minValue : 0 , maxValue : 1 , expected : 0.7f ) ;
156+ yield return new TestCase ( minValue : 0 , maxValue : 10 , expected : 7 ) ;
157+ yield return new TestCase ( minValue : 0 , maxValue : 0.1f , expected : 0.07f ) ;
158+ yield return new TestCase ( minValue : - 1 , maxValue : 1 , expected : 0.4f ) ;
159+ yield return new TestCase ( minValue : - 1 , maxValue : 0 , expected : - 0.3f ) ;
154160 }
155161
156162 private static IEnumerable MoveLeftTestCases ( )
157163 {
158- yield return new TestCase { MinValue = 0 , MaxValue = 1 , Expected = 0.3f } ;
159- yield return new TestCase { MinValue = 0 , MaxValue = 10 , Expected = 3 } ;
160- yield return new TestCase { MinValue = 0 , MaxValue = 0.1f , Expected = 0.03f } ;
161- yield return new TestCase { MinValue = - 1 , MaxValue = 1 , Expected = - 0.4f } ;
162- yield return new TestCase { MinValue = - 1 , MaxValue = 0 , Expected = - 0.7f } ;
164+ yield return new TestCase ( minValue : 0 , maxValue : 1 , expected : 0.3f ) ;
165+ yield return new TestCase ( minValue : 0 , maxValue : 10 , expected : 3 ) ;
166+ yield return new TestCase ( minValue : 0 , maxValue : 0.1f , expected : 0.03f ) ;
167+ yield return new TestCase ( minValue : - 1 , maxValue : 1 , expected : - 0.4f ) ;
168+ yield return new TestCase ( minValue : - 1 , maxValue : 0 , expected : - 0.7f ) ;
163169 }
164170
165171 private IEnumerator ShowHand ( )
@@ -171,10 +177,17 @@ private IEnumerator ShowHand()
171177
172178 private GameObject InstantiateSlider ( string prefabPath )
173179 {
174-
175- GameObject prefab = AssetDatabase . LoadAssetAtPath < GameObject > ( prefabPath ) ;
176- GameObject obj = GameObject . Instantiate ( prefab ) ;
177- return obj ;
180+ GameObject canvas = new GameObject ( "SliderParent" , typeof ( RectTransform ) , typeof ( Canvas ) , typeof ( CanvasScaler ) ) ;
181+ canvas . transform . localScale = Vector3 . one * 0.001f ;
182+ ( canvas . transform as RectTransform ) . sizeDelta = Vector2 . one * 200 ;
183+ GameObject slider = Object . Instantiate ( AssetDatabase . LoadAssetAtPath < GameObject > ( prefabPath ) ) ;
184+ slider . transform . SetParent ( canvas . transform , worldPositionStays : false ) ;
185+ slider . transform . position = Vector3 . zero ;
186+ if ( slider . transform is RectTransform rectTransform )
187+ {
188+ rectTransform . sizeDelta = new Vector2 ( 200f , rectTransform . sizeDelta . y ) ;
189+ }
190+ return canvas ;
178191 }
179192 }
180193}
0 commit comments