def testInputDeviceEventReceiverNode(self): root = self.loadEmptyScene() divNode = avg.DivNode(id="div", size=(50, 50), parent=root) rectNode = avg.RectNode(id="rect", size=(50, 50), parent=root) self.customInputDevice = CustomInputDevice(divNode) player.addInputDevice(self.customInputDevice) handlerTester = NodeHandlerTester(self, divNode) self.start(False, (lambda: self.customInputDevice.feedEvent( avg.MouseEvent(avg.Event.CURSOR_DOWN, True, False, False, (10, 10), 1)), lambda: handlerTester.assertState( (avg.Node.CURSOR_DOWN, avg.Node.CURSOR_OVER)), lambda: self.customInputDevice.feedEvent(avg.MouseEvent( avg.Event.CURSOR_MOTION, True, False, False, (12, 12), 1)), lambda: handlerTester.assertState((avg.Node.CURSOR_MOTION,)), lambda: self.customInputDevice.feedEvent(avg.MouseEvent( avg.Event.CURSOR_MOTION, True, False, False, (100, 100), 1)), lambda: handlerTester.assertState((avg.Node.CURSOR_OUT,)), lambda: self.customInputDevice.feedEvent(avg.MouseEvent( avg.Event.CURSOR_MOTION, True, False, False, (12, 12), 1)), lambda: handlerTester.assertState( (avg.Node.CURSOR_OVER, avg.Node.CURSOR_MOTION)), lambda: self.customInputDevice.feedEvent(avg.MouseEvent( avg.Event.CURSOR_UP, False, False, False, (12, 12), 1)), lambda: handlerTester.assertState((avg.Node.CURSOR_UP,)), ))
def testCustomInputDevice(self): root = self.loadEmptyScene() class DerivedEvent(avg.Event): def __init__(self): super(DerivedEvent, self).__init__(avg.Event.CUSTOM_EVENT, avg.Event.NONE) self.property = True self.hasEventHandlerBeenCalled = False self.isCustomInputDeviceSet = False self.isCustomInputDeviceNameSet = False self.hasCustomEventProperty = False def eventHandler(event): self.hasEventHandlerBeenCalled = True self.isCustomInputDeviceSet = event.inputdevice == self.customInputDevice self.isCustomInputDeviceNameSet = event.inputdevicename == self.customInputDevice.name def customEventEventHandler(event): self.hasCustomEventProperty = event.property def checkAndResetResults(): if not self.hasEventHandlerBeenCalled: return False if not self.isCustomInputDeviceSet: return False if not self.isCustomInputDeviceNameSet: return False self.hasEventHandlerBeenCalled = False self.isCustomInputDeviceSet = False self.isCustomInputDeviceNameSet = False return True rectNode = avg.RectNode(parent=root, pos=(0, 0), size=(50, 50)) rectNode.subscribe(avg.Node.CURSOR_DOWN, eventHandler) root.subscribe(avg.Node.CURSOR_DOWN, eventHandler) root.setEventHandler(avg.Event.CUSTOM_EVENT, avg.Event.NONE, customEventEventHandler) self.customInputDevice = CustomInputDevice() player.addInputDevice(self.customInputDevice) self.start( False, ( lambda: self.customInputDevice.feedEvent(avg.Event(avg.Event.CURSOR_DOWN, avg.Event.MOUSE)), lambda: self.assert_(checkAndResetResults()), lambda: self.customInputDevice.feedEvent(DerivedEvent()), lambda: self.assert_(self.hasCustomEventProperty), lambda: self.customInputDevice.feedEvent( avg.MouseEvent(avg.Event.CURSOR_DOWN, False, False, False, (5, 5), 0) ), lambda: self.assert_(checkAndResetResults()), lambda: self.customInputDevice.feedEvent( avg.TouchEvent(300, avg.Event.CURSOR_DOWN, (5, 5), avg.Event.TOUCH, (10, 10)) ), lambda: self.assert_(checkAndResetResults()), ), )
def testInputDeviceEventReceiverNode(self): root = self.loadEmptyScene() divNode = avg.DivNode(id="div", size=(50, 50), parent=root) rectNode = avg.RectNode(id="rect", size=(50, 50), parent=root) self.customInputDevice = CustomInputDevice(divNode) player.addInputDevice(self.customInputDevice) handlerTester = NodeHandlerTester(self, divNode) self.start(False, ( lambda: self.customInputDevice.feedEvent( avg.MouseEvent(avg.Event.CURSOR_DOWN, True, False, False, (10, 10), 1)), lambda: handlerTester.assertState( (avg.Node.CURSOR_DOWN, avg.Node.CURSOR_OVER)), lambda: self.customInputDevice.feedEvent( avg.MouseEvent(avg.Event.CURSOR_MOTION, True, False, False, (12, 12), 1)), lambda: handlerTester.assertState((avg.Node.CURSOR_MOTION, )), lambda: self.customInputDevice.feedEvent( avg.MouseEvent(avg.Event.CURSOR_MOTION, True, False, False, (100, 100), 1)), lambda: handlerTester.assertState((avg.Node.CURSOR_OUT, )), lambda: self.customInputDevice.feedEvent( avg.MouseEvent(avg.Event.CURSOR_MOTION, True, False, False, (12, 12), 1)), lambda: handlerTester.assertState( (avg.Node.CURSOR_OVER, avg.Node.CURSOR_MOTION)), lambda: self.customInputDevice.feedEvent( avg.MouseEvent(avg.Event.CURSOR_UP, False, False, False, (12, 12), 1)), lambda: handlerTester.assertState((avg.Node.CURSOR_UP, )), ))
def testAnonymousInputDevice(self): root = self.loadEmptyScene() self.hasEventHandlerBeenCalled = False def eventHandler(event): self.hasEventHandlerBeenCalled = event.inputdevicename == AnonymousInputDevice.__name__ def checkAndResetResults(): if not self.hasEventHandlerBeenCalled: return False self.hasEventHandlerBeenCalled = False return True root.setEventHandler(avg.Event.CUSTOM_EVENT, avg.Event.CUSTOM, eventHandler) player.addInputDevice(AnonymousInputDevice()) self.start(False, (lambda: None, lambda: None, lambda: self.assert_(checkAndResetResults())))
def testAnonymousInputDevice(self): root = self.loadEmptyScene() self.hasEventHandlerBeenCalled = False def eventHandler(event): self.hasEventHandlerBeenCalled = ( event.inputdevicename == AnonymousInputDevice.__name__) def checkAndResetResults(): if not self.hasEventHandlerBeenCalled: return False self.hasEventHandlerBeenCalled = False return True root.setEventHandler(avg.Event.CUSTOM_EVENT, avg.Event.CUSTOM, eventHandler) player.addInputDevice(AnonymousInputDevice()) self.start(False, (lambda: None, lambda: None, lambda: self.assert_(checkAndResetResults())))
def testCustomInputDevice(self): root = self.loadEmptyScene() class DerivedEvent(avg.Event): def __init__(self): super(DerivedEvent, self).__init__(avg.Event.CUSTOM_EVENT, avg.Event.NONE) self.property = True class CustomMouseEvent(avg.TouchEvent): def __init__(self): super(CustomMouseEvent, self).__init__(42, avg.Event.CURSOR_DOWN, (10, 10), avg.Event.TOUCH) self.customAttribute = None self.hasEventHandlerBeenCalled = False self.isCustomInputDeviceSet = False self.isCustomInputDeviceNameSet = False self.hasCustomEventProperty = False self.customMouseEventHandlerCalled = False def eventHandler(event): self.hasEventHandlerBeenCalled = True self.isCustomInputDeviceSet = event.inputdevice == self.customInputDevice self.isCustomInputDeviceNameSet = ( event.inputdevicename == self.customInputDevice.name) def customEventEventHandler(event): self.hasCustomEventProperty = event.property def customMouseEventHandler(event): self.customMouseEventHandlerCalled = True self.assert_(hasattr(event, "customAttribute")) def checkAndResetResults(): if not self.hasEventHandlerBeenCalled: return False if not self.isCustomInputDeviceSet: return False if not self.isCustomInputDeviceNameSet: return False self.hasEventHandlerBeenCalled = False self.isCustomInputDeviceSet = False self.isCustomInputDeviceNameSet = False return True rectNode = avg.RectNode(parent=root, pos=(0, 0), size=(50, 50)) rectNode.subscribe(avg.Node.CURSOR_DOWN, eventHandler) root.subscribe(avg.Node.CURSOR_DOWN, eventHandler) root.setEventHandler(avg.Event.CUSTOM_EVENT, avg.Event.NONE, customEventEventHandler) self.customInputDevice = CustomInputDevice() player.addInputDevice(self.customInputDevice) self.start(False, ( lambda: self.customInputDevice.feedEvent( avg.Event(avg.Event.CURSOR_DOWN, avg.Event.MOUSE)), lambda: self.assert_(checkAndResetResults()), lambda: self.customInputDevice.feedEvent(DerivedEvent()), lambda: self.assert_(self.hasCustomEventProperty), lambda: self.customInputDevice.feedEvent( avg.MouseEvent(avg.Event.CURSOR_DOWN, False, False, False, (5, 5), 0)), lambda: self.assert_(checkAndResetResults()), lambda: self.customInputDevice.feedEvent( avg.TouchEvent(300, avg.Event.CURSOR_DOWN, (5, 5), avg.Event.TOUCH, (10, 10))), lambda: self.assert_(checkAndResetResults()), lambda: root.subscribe(avg.Node.CURSOR_DOWN, customMouseEventHandler), lambda: self.customInputDevice.feedEvent(CustomMouseEvent()), lambda: self.assert_(self.customMouseEventHandlerCalled), ))