110 lines
4.1 KiB
C#
110 lines
4.1 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|