1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using System.Collections;
- using System.IO;
- using NUnit.Framework;
- using UnityEditor;
- using UnityEngine;
- using UnityEngine.TestTools;
- using UnityEngine.UI;
-
- namespace Graphics
- {
- public class RawImageTest : IPrebuildSetup
- {
- private const int Width = 32;
- private const int Height = 32;
-
- private GameObject m_PrefabRoot;
- private RawImageTestHook m_image;
- private Texture2D m_defaultTexture;
-
- const string kPrefabPath = "Assets/Resources/RawImageUpdatePrefab.prefab";
-
- public void Setup()
- {
- #if UNITY_EDITOR
- var rootGO = new GameObject("Root");
- var canvasGO = new GameObject("Canvas", typeof(Canvas));
- var canvas = canvasGO.GetComponent<Canvas>();
- canvas.renderMode = RenderMode.WorldSpace;
- canvasGO.transform.SetParent(rootGO.transform);
-
- var imageGO = new GameObject("Image", typeof(RectTransform), typeof(RawImageTestHook));
- var imageTransform = imageGO.GetComponent<RectTransform>();
- imageTransform.SetParent(canvas.transform);
-
- imageTransform.anchoredPosition = Vector2.zero;
-
- if (!Directory.Exists("Assets/Resources/"))
- Directory.CreateDirectory("Assets/Resources/");
-
- PrefabUtility.SaveAsPrefabAsset(rootGO, kPrefabPath);
- GameObject.DestroyImmediate(rootGO);
- #endif
- }
-
- [SetUp]
- public void TestSetup()
- {
- m_PrefabRoot = Object.Instantiate(Resources.Load("RawImageUpdatePrefab")) as GameObject;
-
- m_image = m_PrefabRoot.transform.Find("Canvas/Image").GetComponent<RawImageTestHook>();
- m_defaultTexture = new Texture2D(Width, Height);
- m_image.texture = m_defaultTexture;
- }
-
- [UnityTest]
- public IEnumerator Sprite_Material()
- {
- m_image.ResetTest();
-
- // can test only on texture change, same texture is bypass by RawImage property
- m_image.texture = new Texture2D(Width, Height);
- yield return new WaitUntil(() => m_image.isGeometryUpdated);
-
- // validate that layout change rebuild is called
- Assert.IsTrue(m_image.isMaterialRebuild);
- }
-
- [TearDown]
- public void TearDown()
- {
- GameObject.DestroyImmediate(m_PrefabRoot);
- #if UNITY_EDITOR
- AssetDatabase.DeleteAsset(kPrefabPath);
- #endif
- }
- }
- }
|