Skip to content

Commit 77a4d1d

Browse files
committed
Update new tests to assemble on the fly
instead of adding more prefabs
1 parent 8408768 commit 77a4d1d

5 files changed

Lines changed: 49 additions & 472 deletions

File tree

org.mixedrealitytoolkit.uxcomponents/Tests/Runtime/SliderTests.cs

Lines changed: 49 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,24 @@
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;
79
using MixedReality.Toolkit.Input.Tests;
810
using 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

1018
namespace 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
}

org.mixedrealitytoolkit.uxcore/Tests/Runtime/Prefabs/GrabSliderTest.prefab

Lines changed: 0 additions & 223 deletions
This file was deleted.

org.mixedrealitytoolkit.uxcore/Tests/Runtime/Prefabs/GrabSliderTest.prefab.meta

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)