From 03de6e45b805bb9f7b682bb7efab234167b030a9 Mon Sep 17 00:00:00 2001 From: James Whitehead II Date: Fri, 29 Jul 2011 16:27:14 +0100 Subject: [PATCH] Add more unit tests for attributes --- attribute_tests.lua | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) diff --git a/attribute_tests.lua b/attribute_tests.lua index f0c9586..933c750 100644 --- a/attribute_tests.lua +++ b/attribute_tests.lua @@ -308,8 +308,172 @@ self:ClearBinding("CTRL-SHIFT-F"); self:ClearBinding("SHIFT-F");]], } +-- Test ooc bindings +addtest{ + name = "OOC bindings", + bindings = { + -- A masked binding + { key = "BUTTON2", type = "menu", sets = { ooc = true } }, + { key = "BUTTON2", type = "spell", spell = "Wild Growth", sets = { default = true } }, + -- An unmasked keybinding + { key = "F", type = "spell", spell = "Swiftmend", sets = { ooc = true } }, + }, + cset = [[ +if not inCombat then -- ooc binding + button:SetAttribute("type2", "menu") +else -- clear ooc binding + button:SetAttribute("type2", nil) +end +if not inCombat then -- ooc binding + button:SetAttribute("type-cliquebuttonF", "spell") + button:SetAttribute("spell-cliquebuttonF", "Swiftmend") +else -- clear ooc binding + button:SetAttribute("type-cliquebuttonF", nil) + button:SetAttribute("spell-cliquebuttonF", nil) +end +if inCombat then -- non-ooc that is masking + button:SetAttribute("type2", "spell") + button:SetAttribute("spell2", "Wild Growth") +end]], + crem = [[ +button:SetAttribute("type2", nil) +button:SetAttribute("type-cliquebuttonF", nil) +button:SetAttribute("spell-cliquebuttonF", nil) +button:SetAttribute("type2", nil) +button:SetAttribute("spell2", nil)]], + bset = [[ +self:SetBindingClick(true, "F", self, "cliquebuttonF");]], + brem = [[ +self:ClearBinding("F");]], +} + +-- Test ooc bindings being masked by friend bindings +addtest{ + name = "OOC/friend mask", + bindings = { + -- A masked binding + { key = "BUTTON2", type = "menu", sets = { ooc = true } }, + { key = "BUTTON2", type = "spell", spell = "Wild Growth", sets = { friend = true } }, + }, + cset = [[ +if not inCombat then -- ooc binding + button:SetAttribute("type2", "menu") +else -- clear ooc binding + button:SetAttribute("type2", nil) +end +if inCombat then -- non-ooc that is masking + button:SetAttribute("helpbutton2", "friend2") + button:SetAttribute("type-friend2", "spell") + button:SetAttribute("spell-friend2", "Wild Growth") +end]], + crem = [[ +button:SetAttribute("type2", nil) +button:SetAttribute("helpbutton2", nil) +button:SetAttribute("type-friend2", nil) +button:SetAttribute("spell-friend2", nil)]], +} + +-- Test friend/enemy bindings +addtest{ + name = "Friend/enemy", + bindings = { + -- A masked binding + { key = "BUTTON2", type = "spell", spell = "Healing Touch", sets = { friend = true } }, + { key = "BUTTON2", type = "spell", spell = "Cyclone", sets = { enemy = true } }, + }, + cset = [[ +button:SetAttribute("helpbutton2", "friend2") +button:SetAttribute("type-friend2", "spell") +button:SetAttribute("spell-friend2", "Healing Touch") +button:SetAttribute("harmbutton2", "enemy2") +button:SetAttribute("type-enemy2", "spell") +button:SetAttribute("spell-enemy2", "Cyclone")]], + crem = [[ +button:SetAttribute("helpbutton2", nil) +button:SetAttribute("type-friend2", nil) +button:SetAttribute("spell-friend2", nil) +button:SetAttribute("harmbutton2", nil) +button:SetAttribute("type-enemy2", nil) +button:SetAttribute("spell-enemy2", nil)]], +} + +-- Test friend/ooc/default ooc +addtest{ + name = "Friend/default ooc", + bindings = { + -- A masked binding + { key = "BUTTON2", type = "spell", spell = "Healing Touch", sets = { ooc = true, default = true } }, + { key = "BUTTON2", type = "spell", spell = "Cyclone", sets = { ooc = true, enemy = true } }, + }, + cset = [[ +if not inCombat then -- ooc binding + button:SetAttribute("type2", "spell") + button:SetAttribute("spell2", "Healing Touch") +else -- clear ooc binding + button:SetAttribute("type2", nil) + button:SetAttribute("spell2", nil) +end +if not inCombat then -- ooc binding + button:SetAttribute("harmbutton2", "enemy2") + button:SetAttribute("type-enemy2", "spell") + button:SetAttribute("spell-enemy2", "Cyclone") +else -- clear ooc binding + button:SetAttribute("harmbutton2", nil) + button:SetAttribute("type-enemy2", nil) + button:SetAttribute("spell-enemy2", nil) +end]], + crem = [[ +button:SetAttribute("type2", nil) +button:SetAttribute("spell2", nil) +button:SetAttribute("harmbutton2", nil) +button:SetAttribute("type-enemy2", nil) +button:SetAttribute("spell-enemy2", nil)]], +} + +-- pritalant +addtest{ + name = "Primary talents", + talentGroup = 1, + bindings = { + -- A masked binding + { key = "BUTTON2", type = "spell", spell = "Healing Touch", sets = { pritalent = true } }, + { key = "BUTTON2", type = "spell", spell = "Cyclone", sets = { sectalent = true } }, + }, + cset = [[ +button:SetAttribute("type2", "spell") +button:SetAttribute("spell2", "Healing Touch")]], + crem = [[ +button:SetAttribute("type2", nil) +button:SetAttribute("spell2", nil)]], +} + +-- pritalant +addtest{ + name = "Secondary talents", + talentGroup = 2, + bindings = { + -- A masked binding + { key = "BUTTON2", type = "spell", spell = "Healing Touch", sets = { pritalent = true } }, + { key = "BUTTON2", type = "spell", spell = "Cyclone", sets = { sectalent = true } }, + }, + cset = [[ +button:SetAttribute("type2", "spell") +button:SetAttribute("spell2", "Cyclone")]], + crem = [[ +button:SetAttribute("type2", nil) +button:SetAttribute("spell2", nil)]], +} + + for idx, test in ipairs(tests) do + io.stdout:write("[" .. test.name .. "]") addon.bindings = test.bindings + function GetActiveTalentGroup() + return test.talentGroup and test.talentGroup or 1 + end + + addon.talentGroup = test.talentGroup + local cset, crem = addon:GetClickAttributes() local bset, brem = addon:GetBindingAttributes() local gcset, gcrem = addon:GetClickAttributes(true) @@ -323,6 +487,8 @@ for idx, test in ipairs(tests) do check(gcrem, test, "gcrem") check(gbset, test, "gbset") check(gbrem, test, "gbrem") + + print("\t - PASS") end print("Passed " .. #tests .. " tests") -- 1.7.9.5