Beispiel #1
0
    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()),
            ),
        )
Beispiel #3
0
    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, )),
        ))
Beispiel #4
0
    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())))
Beispiel #5
0
    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())))
Beispiel #6
0
    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),
        ))