123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- using System.Collections.Generic;
- using System.IO;
- using NUnit.Framework;
- using UnityEditor;
- using UnityEngine;
- using UnityEngine.TestTools;
- using UnityEngine.UI;
- using UnityEngine.UI.Tests;
-
- namespace LayoutTests
- {
- class AspectRatioFitterTests : IPrebuildSetup
- {
- const string kPrefabPath = "Assets/Resources/AspectRatioFitterTestsEnvelopeParent.prefab";
- const string kPrefabPath2 = "Assets/Resources/AspectRatioFitterTestsFitInParent.prefab";
-
- private GameObject m_PrefabRoot;
- private AspectRatioFitter m_AspectRatioFitter;
- private RectTransform m_RectTransform;
-
- [SetUp]
- public void Setup()
- {
- #if UNITY_EDITOR
- var cameraGo = new GameObject("Cam").AddComponent<Camera>();
-
- var panelGO = new GameObject("PanelObject", typeof(RectTransform));
- var panelRT = panelGO.GetComponent<RectTransform>();
- panelRT.sizeDelta = new Vector2(200, 200);
-
- var panelGO2 = new GameObject("PanelObject", typeof(RectTransform));
- var panelRT2 = panelGO2.GetComponent<RectTransform>();
- panelRT2.sizeDelta = new Vector2(200, 200);
-
- var testGO = new GameObject("TestObject", typeof(RectTransform), typeof(AspectRatioFitter));
- var image = testGO.AddComponent<Image>();
- image.sprite = AssetDatabase.LoadAssetAtPath<Sprite>("Assets\\download.jpeg");
- m_AspectRatioFitter = testGO.GetComponent<AspectRatioFitter>();
- m_AspectRatioFitter.aspectMode = AspectRatioFitter.AspectMode.EnvelopeParent;
- m_AspectRatioFitter.aspectRatio = 1.5f;
- testGO.transform.SetParent(panelGO.transform);
-
- var testGO2 = new GameObject("TestObject", typeof(RectTransform), typeof(AspectRatioFitter));
- var image2 = testGO2.AddComponent<Image>();
- image2.sprite = AssetDatabase.LoadAssetAtPath<Sprite>("Assets\\download.jpeg");
- m_AspectRatioFitter = testGO2.GetComponent<AspectRatioFitter>();
- m_AspectRatioFitter.aspectMode = AspectRatioFitter.AspectMode.FitInParent;
- m_AspectRatioFitter.aspectRatio = 1.5f;
- testGO2.transform.SetParent(panelGO2.transform);
-
- var testRT = testGO.GetComponent<RectTransform>();
- testRT.sizeDelta = new Vector2(150, 100);
-
- var testRT2 = testGO2.GetComponent<RectTransform>();
- testRT2.sizeDelta = new Vector2(150, 100);
-
- if (!Directory.Exists("Assets/Resources/"))
- Directory.CreateDirectory("Assets/Resources/");
-
- PrefabUtility.SaveAsPrefabAsset(panelGO, kPrefabPath);
- PrefabUtility.SaveAsPrefabAsset(panelGO2, kPrefabPath2);
- GameObject.DestroyImmediate(panelGO);
- GameObject.DestroyImmediate(panelGO2);
- #endif
- }
-
- [TearDown]
- public void TearDown()
- {
- GameObject.DestroyImmediate(m_PrefabRoot);
- m_PrefabRoot = null;
- m_AspectRatioFitter = null;
- m_RectTransform = null;
- }
-
- [OneTimeTearDown]
- public void OneTimeTearDown()
- {
- #if UNITY_EDITOR
- AssetDatabase.DeleteAsset(kPrefabPath);
- AssetDatabase.DeleteAsset(kPrefabPath2);
- #endif
- }
-
- [Test]
- public void TestEnvelopParent()
- {
- m_PrefabRoot = Object.Instantiate(Resources.Load("AspectRatioFitterTestsEnvelopeParent")) as GameObject;
- m_AspectRatioFitter = m_PrefabRoot.GetComponentInChildren<AspectRatioFitter>();
-
- m_AspectRatioFitter.enabled = true;
-
- m_RectTransform = m_AspectRatioFitter.GetComponent<RectTransform>();
- Assert.AreEqual(300, m_RectTransform.rect.width);
- }
-
- [Test]
- public void TestFitInParent()
- {
- m_PrefabRoot = Object.Instantiate(Resources.Load("AspectRatioFitterTestsFitInParent")) as GameObject;
- m_AspectRatioFitter = m_PrefabRoot.GetComponentInChildren<AspectRatioFitter>();
-
- m_AspectRatioFitter.enabled = true;
-
- m_RectTransform = m_AspectRatioFitter.GetComponent<RectTransform>();
- Assert.AreEqual(200, m_RectTransform.rect.width);
- }
- }
- }
|