// ========================================================================== // SC Unit Test // ========================================================================== /*globals SC */ var sc, root, stateA, stateB, stateC, stateD, stateE, stateF; module("SC.State: findFirstRelativeCurrentState method Tests (without concurrent states)", { setup: function() { sc = SC.Statechart.create({ initialState: 'a', a: SC.State.design({ initialSubstate: 'c', c: SC.State.design(), d: SC.State.design() }), b: SC.State.design({ initialSubstate: 'e', e: SC.State.design(), f: SC.State.design() }) }); sc.initStatechart(); root = sc.get('rootState'); stateA = sc.getState('a'); stateB = sc.getState('b'); stateC = sc.getState('c'); stateD = sc.getState('d'); stateE = sc.getState('e'); stateF = sc.getState('f'); }, teardown: function() { sc = root = stateA = stateB = stateC = stateD = stateE = stateF = null; } }); test("check when current state is state C", function() { equals(root.findFirstRelativeCurrentState(), stateC, "root state should return state C"); equals(stateA.findFirstRelativeCurrentState(), stateC, "state A should return state C"); equals(stateB.findFirstRelativeCurrentState(), stateC, "state B should return state C"); equals(stateC.findFirstRelativeCurrentState(), stateC, "state C should return state C"); equals(stateD.findFirstRelativeCurrentState(), stateC, "state D should return state C"); equals(stateE.findFirstRelativeCurrentState(), stateC, "state E should return state C"); equals(stateF.findFirstRelativeCurrentState(), stateC, "state F should return state C"); }); test("check when current state is state F", function() { sc.gotoState(stateF); equals(root.findFirstRelativeCurrentState(), stateF, "root state should return state F"); equals(stateA.findFirstRelativeCurrentState(), stateF, "state A should return state F"); equals(stateB.findFirstRelativeCurrentState(), stateF, "state B should return state F"); equals(stateC.findFirstRelativeCurrentState(), stateF, "state C should return state F"); equals(stateD.findFirstRelativeCurrentState(), stateF, "state D should return state F"); equals(stateE.findFirstRelativeCurrentState(), stateF, "state E should return state F"); equals(stateF.findFirstRelativeCurrentState(), stateF, "state F should return state F"); });