Files
2026-03-04 10:03:45 +08:00

222 lines
4.9 KiB
C#

using UnityEngine;
using UnityEngine.UI;
public class TestClass : MonoBehaviour
{
public Text output1;
public Text output2;
public Text output3;
public Text output4;
public Text output5;
public Text output6;
private const string someKey = "KEY";
private const string someString = "testString";
private const int someInt = 152;
private const float someFloat = -0.001f;
private const string someCrazyKey = "KEYÖäÜ$!?@";
private const string someCrazyString = "ÖÄÜ$!@";
private const int someCrazyInt = int.MinValue;
private const float someCrazyFloat = 1E-20f;
private const string emptyString = "";
private const int zeroInt = 0;
private const float zeroFloat = 0f;
private int errorCount;
private void Start()
{
GeneralTest();
TestKeySystem();
TestIntStoring();
TestSPrefsDeleteKey();
TestDefaultValues();
TestExtremeValues();
if (errorCount < 1)
{
Debug.Log("All tests succeeded");
output6.text = "All tests succeeded";
}
else
{
Debug.Log("Some tests failed. Error count: " + errorCount);
output6.text = "Some tests failed. Error count: " + errorCount;
}
}
private void GeneralTest()
{
string text = "";
SPrefs.SetString("KEY", "testString");
if (SPrefs.GetString("KEY").Equals("testString"))
{
output1.text = "SPrefs working!";
}
else
{
output1.text = "Encryption is probably not possible on this platform";
AddError("SPrefs SetString or GetString not working");
}
text = Cryptor.Encrypt("testString");
output2.text = "Original: testString";
output3.text = "Encrypted: " + text;
text = Cryptor.Decrypt(text);
output4.text = "Decrypted: " + text;
output5.text = "Cryptor working: " + text.Equals("testString");
if (!text.Equals("testString"))
{
AddError("Crypting not working");
}
SPrefs.DeleteAll();
}
private void TestKeySystem()
{
SPrefs.SetInt("KEY", 152);
if (SPrefs.GetString("KEY").Length > 0)
{
AddError("key system not ok");
}
SPrefs.DeleteAll();
}
private void TestIntStoring()
{
SPrefs.SetInt("KEY", 152);
if (152 != SPrefs.GetInt("KEY"))
{
AddError("int was not stored");
}
SPrefs.DeleteAll();
}
private void TestSPrefsDeleteKey()
{
if (SPrefs.HasKey("KEY"))
{
AddError("HasKey detected wrong key!");
}
SPrefs.SetFloat("KEY", -0.001f);
if (!Mathf.Approximately(SPrefs.GetFloat("KEY"), -0.001f))
{
AddError("float was not stored");
}
if (!SPrefs.HasKey("KEY"))
{
AddError("HasKey didn't detect key!");
}
SPrefs.SetFloat("example", 1f);
SPrefs.DeleteKey("KEY");
if (SPrefs.HasKey("KEY"))
{
AddError("Key was not deleted!");
}
if (!Mathf.Approximately(SPrefs.GetFloat("example"), 1f))
{
AddError("Key deletion affects wrong key!");
}
SPrefs.DeleteAll();
}
private void TestDefaultValues()
{
if (!SPrefs.GetString("KEY", "abcd").Equals("abcd"))
{
AddError("Default string not returned!");
}
if (3 != SPrefs.GetInt("KEY", 3))
{
AddError("Default int not returned!");
}
if (!Mathf.Approximately(SPrefs.GetFloat("KEY", 2f), 2f))
{
AddError("Default float not returned!");
}
SPrefs.SetFloat("KEY", -0.001f);
if (!Mathf.Approximately(SPrefs.GetFloat("KEY", 2f), -0.001f))
{
AddError("Default float overwrite!");
}
if (3 != SPrefs.GetInt("KEY", 3))
{
AddError("Default int not returned after float set!");
}
if (SPrefs.GetBool("KEY"))
{
AddError("Default bool is not 'false'");
}
SPrefs.SetBool("KEY", value: true);
if (!SPrefs.GetBool("KEY", defaultValue: false))
{
AddError("Default bool overwrite!");
}
SPrefs.DeleteAll();
}
private void TestExtremeValues()
{
SPrefs.SetString("KEYÖäÜ$!?@", "ÖÄÜ$!@");
if (!"ÖÄÜ$!@".Equals(SPrefs.GetString("KEYÖäÜ$!?@")))
{
AddError("String Umlauts problem");
}
SPrefs.SetInt("KEYÖäÜ$!?@", int.MinValue);
if (int.MinValue != SPrefs.GetInt("KEYÖäÜ$!?@"))
{
AddError("Negative int max value not ok");
}
SPrefs.SetFloat("KEYÖäÜ$!?@", 1E-20f);
if (!Mathf.Approximately(1E-20f, SPrefs.GetFloat("KEYÖäÜ$!?@")))
{
AddError("Problem with very small float numbers");
}
SPrefs.DeleteKey("KEYÖäÜ$!?@");
SPrefs.SetString("KEYÖäÜ$!?@", "");
if (!"".Equals(SPrefs.GetString("KEYÖäÜ$!?@")))
{
AddError("Empty string problem");
}
SPrefs.SetInt("KEYÖäÜ$!?@", 0);
if (SPrefs.GetInt("KEYÖäÜ$!?@") != 0)
{
AddError("Int zero problem");
}
SPrefs.SetFloat("KEYÖäÜ$!?@", 0f);
if (!Mathf.Approximately(0f, SPrefs.GetFloat("KEYÖäÜ$!?@")))
{
AddError("Float zero problem");
}
SPrefs.DeleteKey("KEYÖäÜ$!?@");
SPrefs.SetString(null, null);
SPrefs.GetString(null);
SPrefs.SetInt(null, 0);
SPrefs.GetInt(null);
SPrefs.SetFloat(null, 0f);
SPrefs.GetFloat(null);
SPrefs.GetBool(null, defaultValue: true);
SPrefs.GetBool(null);
SPrefs.DeleteAll();
}
private void AddError(string msg)
{
Debug.Log(msg);
errorCount++;
}
}