123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- using System.Reflection;
- using System.Collections;
- using NUnit.Framework;
- using UnityEngine.EventSystems;
- using UnityEngine.TestTools;
-
- namespace UnityEngine.UI.Tests
- {
- [TestFixture]
- class NavigationTests
- {
- GameObject canvasRoot;
- Selectable topLeftSelectable;
- Selectable bottomLeftSelectable;
- Selectable topRightSelectable;
- Selectable bottomRightSelectable;
-
- [SetUp]
- public void TestSetup()
- {
- canvasRoot = new GameObject("Canvas", typeof(RectTransform), typeof(Canvas));
- GameObject topLeftGO = new GameObject("topLeftGO", typeof(RectTransform), typeof(CanvasRenderer), typeof(Selectable));
- topLeftGO.transform.SetParent(canvasRoot.transform);
- (topLeftGO.transform as RectTransform).anchoredPosition = new Vector2(50, 200);
- topLeftSelectable = topLeftGO.GetComponent<Selectable>();
-
- GameObject bottomLeftGO = new GameObject("bottomLeftGO", typeof(RectTransform), typeof(CanvasRenderer), typeof(Selectable));
- bottomLeftGO.transform.SetParent(canvasRoot.transform);
- (bottomLeftGO.transform as RectTransform).anchoredPosition = new Vector2(50, 50);
- bottomLeftSelectable = bottomLeftGO.GetComponent<Selectable>();
-
- GameObject topRightGO = new GameObject("topRightGO", typeof(RectTransform), typeof(CanvasRenderer), typeof(Selectable));
- topRightGO.transform.SetParent(canvasRoot.transform);
- (topRightGO.transform as RectTransform).anchoredPosition = new Vector2(200, 200);
- topRightSelectable = topRightGO.GetComponent<Selectable>();
-
- GameObject bottomRightGO = new GameObject("bottomRightGO", typeof(RectTransform), typeof(CanvasRenderer), typeof(Selectable));
- bottomRightGO.transform.SetParent(canvasRoot.transform);
- (bottomRightGO.transform as RectTransform).anchoredPosition = new Vector2(200, 50);
- bottomRightSelectable = bottomRightGO.GetComponent<Selectable>();
- }
-
- [TearDown]
- public void TearDown()
- {
- GameObject.DestroyImmediate(canvasRoot);
- }
-
- [Test]
- public void FindSelectableOnRight_ReturnsNextSelectableRightOfTarget()
- {
- Selectable selectableRightOfTopLeft = topLeftSelectable.FindSelectableOnRight();
- Selectable selectableRightOfBottomLeft = bottomLeftSelectable.FindSelectableOnRight();
-
- Assert.AreEqual(topRightSelectable, selectableRightOfTopLeft, "Wrong selectable to right of Top Left Selectable");
- Assert.AreEqual(bottomRightSelectable, selectableRightOfBottomLeft, "Wrong selectable to right of Bottom Left Selectable");
- }
-
- [Test]
- public void FindSelectableOnLeft_ReturnsNextSelectableLeftOfTarget()
- {
- Selectable selectableLeftOfTopRight = topRightSelectable.FindSelectableOnLeft();
- Selectable selectableLeftOfBottomRight = bottomRightSelectable.FindSelectableOnLeft();
-
- Assert.AreEqual(topLeftSelectable, selectableLeftOfTopRight, "Wrong selectable to left of Top Right Selectable");
- Assert.AreEqual(bottomLeftSelectable, selectableLeftOfBottomRight, "Wrong selectable to left of Bottom Right Selectable");
- }
-
- [Test]
- public void FindSelectableOnRDown_ReturnsNextSelectableBelowTarget()
- {
- Selectable selectableDownOfTopLeft = topLeftSelectable.FindSelectableOnDown();
- Selectable selectableDownOfTopRight = topRightSelectable.FindSelectableOnDown();
-
- Assert.AreEqual(bottomLeftSelectable, selectableDownOfTopLeft, "Wrong selectable to Bottom of Top Left Selectable");
- Assert.AreEqual(bottomRightSelectable, selectableDownOfTopRight, "Wrong selectable to Bottom of top Right Selectable");
- }
-
- [Test]
- public void FindSelectableOnUp_ReturnsNextSelectableAboveTarget()
- {
- Selectable selectableUpOfBottomLeft = bottomLeftSelectable.FindSelectableOnUp();
- Selectable selectableUpOfBottomRight = bottomRightSelectable.FindSelectableOnUp();
-
- Assert.AreEqual(topLeftSelectable, selectableUpOfBottomLeft, "Wrong selectable to Up of bottom Left Selectable");
- Assert.AreEqual(topRightSelectable, selectableUpOfBottomRight, "Wrong selectable to Up of bottom Right Selectable");
- }
-
- [Test]
- public void FindSelectableOnRight__WrappingEnabled_ReturnsFurthestSelectableOnLeft()
- {
- Navigation nav = topRightSelectable.navigation;
- nav.wrapAround = true;
- nav.mode = Navigation.Mode.Horizontal;
- topRightSelectable.navigation = nav;
-
- nav = bottomRightSelectable.navigation;
- nav.wrapAround = true;
- nav.mode = Navigation.Mode.Horizontal;
- bottomRightSelectable.navigation = nav;
-
- Selectable selectableRightOfTopRight = topRightSelectable.FindSelectableOnRight();
- Selectable selectableRightOfBottomRight = bottomRightSelectable.FindSelectableOnRight();
-
- Assert.AreEqual(bottomLeftSelectable, selectableRightOfTopRight, "Wrong selectable to right of Top Right Selectable");
- Assert.AreEqual(topLeftSelectable, selectableRightOfBottomRight, "Wrong selectable to right of Bottom Right Selectable");
- }
-
- [Test]
- public void FindSelectableOnLeft_WrappingEnabled_ReturnsFurthestSelectableOnRight()
- {
- Navigation nav = topLeftSelectable.navigation;
- nav.wrapAround = true;
- nav.mode = Navigation.Mode.Horizontal;
- topLeftSelectable.navigation = nav;
-
- nav = bottomLeftSelectable.navigation;
- nav.wrapAround = true;
- nav.mode = Navigation.Mode.Horizontal;
- bottomLeftSelectable.navigation = nav;
-
- Selectable selectableLeftOfTopLeft = topLeftSelectable.FindSelectableOnLeft();
- Selectable selectableLeftOfBottomLeft = bottomLeftSelectable.FindSelectableOnLeft();
-
- Assert.AreEqual(bottomRightSelectable, selectableLeftOfTopLeft, "Wrong selectable to left of Top Left Selectable");
- Assert.AreEqual(topRightSelectable, selectableLeftOfBottomLeft, "Wrong selectable to left of Bottom Left Selectable");
- }
-
- [Test]
- public void FindSelectableOnDown_WrappingEnabled_ReturnsFurthestSelectableAbove()
- {
- Navigation nav = bottomLeftSelectable.navigation;
- nav.wrapAround = true;
- nav.mode = Navigation.Mode.Vertical;
- bottomLeftSelectable.navigation = nav;
-
- nav = bottomRightSelectable.navigation;
- nav.wrapAround = true;
- nav.mode = Navigation.Mode.Vertical;
- bottomRightSelectable.navigation = nav;
-
- Selectable selectableDownOfBottomLeft = bottomLeftSelectable.FindSelectableOnDown();
- Selectable selectableDownOfBottomRight = bottomRightSelectable.FindSelectableOnDown();
-
- Assert.AreEqual(topRightSelectable, selectableDownOfBottomLeft, "Wrong selectable to Bottom of Bottom Left Selectable");
- Assert.AreEqual(topLeftSelectable, selectableDownOfBottomRight, "Wrong selectable to Bottom of Bottom Right Selectable");
- }
-
- [Test]
- public void FindSelectableOnUp_WrappingEnabled_ReturnsFurthestSelectableBelow()
- {
- Navigation nav = topLeftSelectable.navigation;
- nav.wrapAround = true;
- nav.mode = Navigation.Mode.Vertical;
- topLeftSelectable.navigation = nav;
-
- nav = topRightSelectable.navigation;
- nav.wrapAround = true;
- nav.mode = Navigation.Mode.Vertical;
- topRightSelectable.navigation = nav;
-
- Selectable selectableUpOfTopLeft = topLeftSelectable.FindSelectableOnUp();
- Selectable selectableUpOfTopRight = topRightSelectable.FindSelectableOnUp();
-
- Assert.AreEqual(bottomRightSelectable, selectableUpOfTopLeft, "Wrong selectable to Up of Top Left Selectable");
- Assert.AreEqual(bottomLeftSelectable, selectableUpOfTopRight, "Wrong selectable to Up of Top Right Selectable");
- }
- }
- }
|