Ejemplo n.º 1
0
    public void TestConstructor()
    {
        increment = 0;
        IEventTarget eventTarget = (IEventTarget)doc.DocumentElement;

        // Add first event listener
        eventTarget.AddEventListener("mousemove", new EventListener(OnMouseMove), false);
        eventTarget.DispatchEvent(new Event("uievent", "mousemove", true, false));
        Assert.AreEqual(1, increment);

        // Add second event listener
        // "If multiple identical EventListeners are registered on the same EventTarget with the same
        //  parameters the duplicate instances are discarded. They do not cause the EventListener to
        //  be called twice and since they are discarded they do not need to be removed with the removeEventListener method."
        eventTarget.AddEventListener("mousemove", new EventListener(OnMouseMove), false);
        eventTarget.DispatchEvent(new Event("uievent", "mousemove", true, false));
        Assert.AreEqual(2, increment);

        // Remove first event listener
        eventTarget.RemoveEventListener("mousemove", new EventListener(OnMouseMove), false);
        eventTarget.DispatchEvent(new Event("uievent", "mousemove", true, false));
        Assert.AreEqual(2, increment);

        // Remove second event listener
        // "Calling removeEventListener with arguments which do not identify any currently registered EventListener on the EventTarget has no effect."
        eventTarget.RemoveEventListener("mousemove", new EventListener(OnMouseMove), false);
        eventTarget.DispatchEvent(new Event("uievent", "mousemove", true, false));
        Assert.AreEqual(2, increment);
    }
Ejemplo n.º 2
0
        public void EventHandler(
            IEvent @event)
        {
            IEventTarget target = @event.CurrentTarget;

            events.Add(@event);

            foreach (ListenerRemover listener in listeners)
            {
                target.RemoveEventListener("foo", new EventListener(listener.EventHandler), false);
            }
        }