public void QuickButtonPositionOverMultipleSessions() { var cursorApiMock = new CursorApiMock(); var keyboardKeyMock = new KeyboardKeyApiMock(); var session = new SessionBuilder() .WithScreenDimensions(800, 600) .WithApiMock(cursorApiMock) .WithApiMock(keyboardKeyMock) .WithGH() .Build(); session.RunStartup(); var ghTestable = new GHAddOnTestable(session); var buttonLocation = ghTestable.GetMainButtonLocation(); var distToExpected = GetDist(buttonLocation.Item1, buttonLocation.Item2, 600, 450); Assert.IsTrue(distToExpected < 30, $"The main button was not located as expected. Distance from actual to expected: {distToExpected}."); ghTestable.MouseOverMainButton(); cursorApiMock.SetPosition(600, 450); keyboardKeyMock.ShiftKeyDown = true; ghTestable.StartDragMainButton(); session.RunUpdate(); cursorApiMock.SetPosition(550, 300); session.RunUpdate(); cursorApiMock.SetPosition(500, 100); session.RunUpdate(); ghTestable.StopDragMainButton(); keyboardKeyMock.ShiftKeyDown = false; var buttonLocationAfterMove = ghTestable.GetMainButtonLocation(); var distToExpectedAfterMove = GetDist(buttonLocationAfterMove.Item1, buttonLocationAfterMove.Item2, 500, 100); Assert.IsTrue(distToExpectedAfterMove < 30, $"The main button was not located as expected. Distance from actual to expected: {distToExpectedAfterMove}."); var savedVars = session.GetSavedVariables(); var cursorApiMock2 = new CursorApiMock(); var session2 = new SessionBuilder() .WithScreenDimensions(800, 600) .WithApiMock(cursorApiMock2) .WithSavedVariables(savedVars) .WithGH() .Build(); var ghTestable2 = new GHAddOnTestable(session2); var buttonLocation2 = ghTestable2.GetMainButtonLocation(); var distToExpected2 = GetDist(buttonLocation2.Item1, buttonLocation2.Item2, 500, 100); Assert.IsTrue(distToExpected2 < 30, $"The main button was not located as expected. Distance from actual to expected: {distToExpected2}."); }
public void ProfileWithAdditionalFieldsTest() { var session = new SessionBuilder() .WithPlayerName("Tester") .WithPlayerClass("Priest") .WithPlayerGuid("g1") .WithPlayerRace("Human") .WithPlayerSex(2) .WithGH() .WithGHF() .Build(); session.RunStartup(); var ghTestable = new GHAddOnTestable(session); var menuTestable = new GHMenuTestable(session); ghTestable.MouseOverMainButton(); ghTestable.ClickSubButton("Interface\\Icons\\Spell_Misc_EmotionHappy"); menuTestable.SelectMenu("GHF_CharacterMenu"); session.Actor.Click("Add Additional Fields"); session.Actor.Click("Title"); menuTestable.VerifyLabelVisible("Title:"); menuTestable.SetObjectValue("Title:", "Cleric"); session.Actor.Click("Add Additional Fields"); session.Actor.Click("Age"); menuTestable.VerifyLabelVisible("Age:"); menuTestable.SetObjectValue("Age:", "52"); menuTestable.CloseMenu(); var savedVars = session.GetSavedVariables(); var savedProfiles = (NativeLuaTable)savedVars[ModelProvider.SavedAccountProfiles]; var additionalFields = TestUtil.GetTableValue <Profile>(savedProfiles, "Tester", "obj").AdditionalFields; Assert.AreEqual("Cleric", additionalFields["title"]); Assert.AreEqual("52", additionalFields["age"]); }
public void MultiCharProfileLifecycle() { var session = new SessionBuilder() .WithPlayerName("Tester") .WithPlayerClass("Mage") .WithPlayerGuid("g1") .WithPlayerRace("Human") .WithPlayerSex(2) .WithGH() .WithGHF() .Build(); session.RunStartup(); var ghTestable = new GHAddOnTestable(session); var menuTestable = new GHMenuTestable(session); ghTestable.MouseOverMainButton(); ghTestable.ClickSubButton("Interface\\Icons\\Spell_Misc_EmotionHappy"); menuTestable.SelectMenu("GHF_CharacterMenu"); Assert.AreEqual("Tester", menuTestable.GetObjectValue("First Name:")); Assert.AreEqual("", menuTestable.GetObjectValue("Middle Name(s):")); Assert.AreEqual("", menuTestable.GetObjectValue("Last Name:")); menuTestable.SetObjectValue("First Name:", "Testperson"); menuTestable.SetObjectValue("Middle Name(s):", "von der"); menuTestable.SetObjectValue("Last Name:", "Testa"); menuTestable.CloseMenu(); var savedVars = session.GetSavedVariables(); var session2 = new SessionBuilder() .WithPlayerName("Pilus") .WithPlayerClass("Warrior") .WithPlayerGuid("g2") .WithPlayerRace("Human") .WithPlayerSex(2) .WithGH() .WithGHF() .WithSavedVariables(savedVars) .Build(); session2.RunStartup(); var ghTestable2 = new GHAddOnTestable(session2); var menuTestable2 = new GHMenuTestable(session2); ghTestable2.MouseOverMainButton(); ghTestable2.ClickSubButton("Interface\\Icons\\Spell_Misc_EmotionHappy"); menuTestable2.SelectMenu("GHF_CharacterMenu"); Assert.AreEqual("Pilus", menuTestable2.GetObjectValue("First Name:")); Assert.AreEqual("", menuTestable2.GetObjectValue("Middle Name(s):")); Assert.AreEqual("", menuTestable2.GetObjectValue("Last Name:")); session2.Actor.Click("Interface\\Buttons\\UI-SpellbookIcon-PrevPage-Up"); session2.Actor.VerifyVisible("Testperson von der Testa"); session2.Actor.VerifyVisible("Interface\\Icons\\INV_Staff_13"); // Mage session2.Actor.VerifyVisible("Pilus"); session2.Actor.VerifyVisible("Interface\\Icons\\INV_Sword_27"); // Warrior }
public void SimpleProfileLifecycle() { var session = new SessionBuilder() .WithPlayerName("Tester") .WithPlayerClass("Druid") .WithPlayerGuid("g1") .WithPlayerRace("Human") .WithPlayerSex(2) .WithGH() .WithGHF() .Build(); session.RunStartup(); var ghTestable = new GHAddOnTestable(session); var menuTestable = new GHMenuTestable(session); ghTestable.MouseOverMainButton(); ghTestable.ClickSubButton("Interface\\Icons\\Spell_Misc_EmotionHappy"); menuTestable.SelectMenu("GHF_CharacterMenu"); Assert.AreEqual("Tester", menuTestable.GetObjectValue("First Name:")); Assert.AreEqual("", menuTestable.GetObjectValue("Middle Name(s):")); Assert.AreEqual("", menuTestable.GetObjectValue("Last Name:")); Assert.AreEqual("", menuTestable.GetObjectValue("Background:")); menuTestable.SetObjectValue("First Name:", "Testperson"); menuTestable.SetObjectValue("Middle Name(s):", "von der"); menuTestable.SetObjectValue("Last Name:", "Testa"); menuTestable.SetObjectValue("Appearance:", "Looks"); menuTestable.SetObjectValue("Background:", "Background story."); menuTestable.CloseMenu(); var savedVars = session.GetSavedVariables(); var session2 = new SessionBuilder() .WithPlayerName("Tester") .WithPlayerClass("Druid") .WithPlayerGuid("g1") .WithPlayerRace("Human") .WithPlayerSex(2) .WithGH() .WithGHF() .WithSavedVariables(savedVars) .Build(); session2.RunStartup(); var ghTestable2 = new GHAddOnTestable(session2); var menuTestable2 = new GHMenuTestable(session2); ghTestable2.MouseOverMainButton(); ghTestable2.ClickSubButton("Interface\\Icons\\Spell_Misc_EmotionHappy"); menuTestable2.SelectMenu("GHF_CharacterMenu"); Assert.AreEqual("Testperson", menuTestable2.GetObjectValue("First Name:")); Assert.AreEqual("von der", menuTestable2.GetObjectValue("Middle Name(s):")); Assert.AreEqual("Testa", menuTestable2.GetObjectValue("Last Name:")); Assert.AreEqual("Looks", menuTestable2.GetObjectValue("Appearance:")); Assert.AreEqual("Background story.", menuTestable2.GetObjectValue("Background:")); }