aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/events/events_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/events/events_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/events/events_test.html456
1 files changed, 0 insertions, 456 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/events/events_test.html b/contexts/data/lib/closure-library/closure/goog/events/events_test.html
deleted file mode 100644
index c138cde..0000000
--- a/contexts/data/lib/closure-library/closure/goog/events/events_test.html
+++ /dev/null
@@ -1,456 +0,0 @@
-<!DOCTYPE html>
-<html>
-<!--
-Copyright 2006 The Closure Library Authors. All Rights Reserved.
-
-Use of this source code is governed by the Apache License, Version 2.0.
-See the COPYING file for details.
--->
-<head>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<title>Closure Unit Tests - goog.events</title>
- <script src="../base.js"></script>
-<script>
- goog.require('goog.debug.EntryPointMonitor');
- goog.require('goog.debug.ErrorHandler');
- goog.require('goog.debug.ErrorHandler.ProtectedFunctionError');
- goog.require('goog.events');
- goog.require('goog.events.EventTarget');
- goog.require('goog.events.EventType');
- goog.require('goog.functions');
- goog.require('goog.testing.PropertyReplacer');
- goog.require('goog.testing.jsunit');
- goog.require('goog.testing.recordFunction');
-</script>
-</head>
-<body>
-<script>
- var originalHandleBrowserEvent = goog.events.handleBrowserEvent_;
- var propertyReplacer;
-
- function setUp() {
- propertyReplacer = new goog.testing.PropertyReplacer();
- }
-
- function tearDown() {
- goog.events.handleBrowserEvent_ = originalHandleBrowserEvent;
- goog.events.removeAll();
- propertyReplacer.reset();
- }
-
- function testProtectBrowserEventEntryPoint() {
- var errorHandlerCallbackCalled = false;
- var errorHandler = new goog.debug.ErrorHandler(function() {
- errorHandlerCallbackCalled = true;
- });
-
- goog.events.protectBrowserEventEntryPoint(errorHandler);
-
- var protectedHandleBrowserEvent_ = goog.events.handleBrowserEvent_;
- goog.events.handleBrowserEvent_ = function(evt) {
- try {
- protectedHandleBrowserEvent_(evt);
- } catch (e) {
- assertTrue(
- e instanceof goog.debug.ErrorHandler.ProtectedFunctionError);
- }
- };
-
- var bodyEl = document.body;
- goog.events.listen(bodyEl, goog.events.EventType.CLICK, function(e){
- throw Error;
- });
-
- triggerClickEvent(bodyEl);
-
- assertTrue('Error handler callback should be called.',
- errorHandlerCallbackCalled);
- }
-
- function triggerClickEvent(element) {
- if (document.createEvent) {
- var event = document.createEvent("MouseEvents");
- event.initMouseEvent("click", true, true, window,
- 0, 0, 0, 0, 0, false, false, false, false, 0, null);
- element.dispatchEvent(event);
- } else {
- element.fireEvent('onclick', element.ownerDocument.createEventObject());
- }
- }
-
- function testSelfRemove() {
- var et1 = new goog.events.EventTarget();
- var callback = function() {
- // This listener removes itself during event dispatching, so it
- // is marked as 'removed' but not actually removed until after event
- // dispatching ends.
- goog.events.removeAll(et1, 'click');
-
- // Test that goog.events.getListener ignores events marked as 'removed'.
- assertNull(goog.events.getListener(et1, 'click', callback));
- };
- var key = goog.events.listen(et1, 'click', callback);
- goog.events.dispatchEvent(et1, 'click');
- }
-
- function testHasListener() {
- var div = document.createElement('div');
- assertFalse(goog.events.hasListener(div));
-
- var key = goog.events.listen(div, 'click', function(){});
- assertTrue(goog.events.hasListener(div));
- assertTrue(goog.events.hasListener(div, 'click'));
- assertTrue(goog.events.hasListener(div, 'click', false));
- assertTrue(goog.events.hasListener(div, undefined, false));
-
- assertFalse(goog.events.hasListener(div, 'click', true));
- assertFalse(goog.events.hasListener(div, undefined, true));
- assertFalse(goog.events.hasListener(div, 'mouseup'));
-
- // Test that hasListener returns false when all listeners are removed.
- goog.events.unlistenByKey(key);
- assertFalse(goog.events.hasListener(div));
- }
-
- function testHasListenerWithEventTarget() {
- var et = new goog.events.EventTarget();
- assertFalse(goog.events.hasListener(et));
-
- function callback() {};
- goog.events.listen(et, 'test', callback, true);
- assertTrue(goog.events.hasListener(et));
- assertTrue(goog.events.hasListener(et, 'test'));
- assertTrue(goog.events.hasListener(et, 'test', true));
- assertTrue(goog.events.hasListener(et, undefined, true));
-
- assertFalse(goog.events.hasListener(et, 'click'));
- assertFalse(goog.events.hasListener(et, 'test', false));
-
- goog.events.unlisten(et, 'test', callback, true);
- assertFalse(goog.events.hasListener(et));
- }
-
- function testHasListenerWithMultipleTargets() {
- var et1 = new goog.events.EventTarget();
- var et2 = new goog.events.EventTarget();
-
- function callback() {};
-
- goog.events.listen(et1, 'test1', callback, true);
- goog.events.listen(et2, 'test2', callback, true);
-
- assertTrue(goog.events.hasListener(et1));
- assertTrue(goog.events.hasListener(et2));
- assertTrue(goog.events.hasListener(et1, 'test1'));
- assertTrue(goog.events.hasListener(et2, 'test2'));
-
- assertFalse(goog.events.hasListener(et1, 'et2'));
- assertFalse(goog.events.hasListener(et2, 'et1'));
-
- goog.events.removeAll(et1);
- goog.events.removeAll(et2);
- }
-
- function testBubbleSingle() {
- var et1 = new goog.events.EventTarget();
- var et2 = new goog.events.EventTarget();
- var et3 = new goog.events.EventTarget();
-
- et1.setParentEventTarget(et2);
- et2.setParentEventTarget(et3);
-
- var count = 0;
- function callback() {
- count++;
- }
-
- goog.events.listen(et3, 'test', callback, false);
-
- et1.dispatchEvent('test');
-
- assertEquals(1, count);
-
- goog.events.removeAll(et1);
- goog.events.removeAll(et2);
- goog.events.removeAll(et3);
- }
-
- function testBubbleShortCircuit() {
- var et1 = new goog.events.EventTarget();
- var et2 = new goog.events.EventTarget();
-
- et1.setParentEventTarget(et2);
-
- et2.getParentEventTarget = function() {
- fail('This should never be called');
- };
-
- var count = 0;
- function callback() {
- count++;
- }
-
- goog.events.listen(et1, 'test', callback, false);
-
- et1.dispatchEvent('test');
-
- assertEquals(1, count);
-
- goog.events.removeAll(et1);
- goog.events.removeAll(et2);
- }
-
- function testCaptureSingle() {
- var et1 = new goog.events.EventTarget();
- var et2 = new goog.events.EventTarget();
- var et3 = new goog.events.EventTarget();
-
- et1.setParentEventTarget(et2);
- et2.setParentEventTarget(et3);
-
- var count = 0;
- function callback() {
- count++;
- }
-
- goog.events.listen(et3, 'test', callback, true);
-
- et1.dispatchEvent('test');
-
- assertEquals(1, count);
-
- goog.events.removeAll(et1);
- goog.events.removeAll(et2);
- goog.events.removeAll(et3);
- }
-
- function testCaptureAndBubble() {
- var et1 = new goog.events.EventTarget();
- var et2 = new goog.events.EventTarget();
- var et3 = new goog.events.EventTarget();
-
- et1.setParentEventTarget(et2);
- et2.setParentEventTarget(et3);
-
- var count = 0;
- function callbackCapture1() {
- count++;
- assertEquals(3, count);
- }
- function callbackBubble1() {
- count++;
- assertEquals(4, count);
- }
-
- function callbackCapture2() {
- count++;
- assertEquals(2, count);
- }
- function callbackBubble2() {
- count++;
- assertEquals(5, count);
- }
-
- function callbackCapture3() {
- count++;
- assertEquals(1, count);
- }
- function callbackBubble3() {
- count++;
- assertEquals(6, count);
- }
-
- goog.events.listen(et1, 'test', callbackCapture1, true);
- goog.events.listen(et1, 'test', callbackBubble1, false);
- goog.events.listen(et2, 'test', callbackCapture2, true);
- goog.events.listen(et2, 'test', callbackBubble2, false);
- goog.events.listen(et3, 'test', callbackCapture3, true);
- goog.events.listen(et3, 'test', callbackBubble3, false);
-
- et1.dispatchEvent('test');
-
- assertEquals(6, count);
-
- goog.events.removeAll(et1);
- goog.events.removeAll(et2);
- goog.events.removeAll(et3);
- }
-
- function testCapturingRemovesBubblingListener() {
- var et1 = new goog.events.EventTarget();
-
- var bubbleCount = 0;
- function callbackBubble() {
- bubbleCount++;
- }
-
- var captureCount = 0;
- function callbackCapture() {
- captureCount++;
- goog.events.removeAll(et1);
- }
-
- goog.events.listen(et1, 'test', callbackCapture, true);
- goog.events.listen(et1, 'test', callbackBubble, false);
-
- et1.dispatchEvent('test');
- assertEquals(1, captureCount);
- assertEquals(0, bubbleCount);
- }
-
- function dispatchClick(target) {
- if (target.click) {
- target.click();
- } else {
- var e = document.createEvent('MouseEvents');
- e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false,
- false, false, false, 0, null);
- target.dispatchEvent(e);
- }
- }
-
- function testHandleBrowserEventBubblingListener() {
- var count = 0;
- var body = document.body;
- goog.events.listen(body, 'click', function() {
- count++;
- });
- dispatchClick(body);
- assertEquals(1, count);
- }
-
- function testHandleBrowserEventCapturingListener() {
- var count = 0;
- var body = document.body;
- goog.events.listen(body, 'click', function() {
- count++;
- }, true);
- dispatchClick(body);
- assertEquals(1, count);
- }
-
- function testHandleBrowserEventCapturingAndBubblingListener() {
- var count = 1;
- var body = document.body;
- goog.events.listen(body, 'click', function() {
- count += 3;
- }, true);
- goog.events.listen(body, 'click', function() {
- count *= 5;
- }, false);
- dispatchClick(body);
- assertEquals(20, count);
- }
-
- function testHandleBrowserEventCapturingRemovesBubblingListener() {
- var body = document.body;
-
- var bubbleCount = 0;
- function callbackBubble() {
- bubbleCount++;
- }
-
- var captureCount = 0;
- function callbackCapture() {
- captureCount++;
- goog.events.removeAll(body);
- }
-
- goog.events.listen(body, 'click', callbackCapture, true);
- goog.events.listen(body, 'click', callbackBubble, false);
-
- dispatchClick(body);
- assertEquals(1, captureCount);
- assertEquals(0, bubbleCount);
- }
-
- function testHandleEventPropagationOnParentElement() {
- var count = 1;
- goog.events.listen(document.documentElement, 'click',
- function() {
- count += 3;
- }, true);
- goog.events.listen(document.documentElement, 'click', function() {
- count *= 5;
- }, false);
- dispatchClick(document.body);
- assertEquals(20, count);
- }
-
- function testEntryPointRegistry() {
- var monitor = new goog.debug.EntryPointMonitor();
- var replacement = function() {};
- monitor.wrap = goog.testing.recordFunction(
- goog.functions.constant(replacement));
-
- goog.debug.entryPointRegistry.monitorAll(monitor);
- assertTrue(monitor.wrap.getCallCount() >= 1);
- assertEquals(replacement, goog.events.handleBrowserEvent_);
- }
-
- // Fixes bug http://b/6434926
- function testListenOnceHandlerDispatchCausingInfiniteLoop() {
- var target = new goog.events.EventTarget();
-
- var handleFoo = goog.testing.recordFunction(function() {
- target.dispatchEvent('foo');
- });
-
- goog.events.listenOnce(target, 'foo', handleFoo);
-
- target.dispatchEvent('foo');
-
- assertEquals('Handler should be called only once.',
- 1, handleFoo.getCallCount());
- }
-
- function testCreationStack() {
- if (!new Error().stack)
- return;
- propertyReplacer.replace(goog.events.Listener, 'ENABLE_MONITORING', true);
-
- var div = document.createElement('div');
- var key = goog.events.listen(
- div, goog.events.EventType.CLICK, goog.nullFunction);
- var listenerStack = goog.events.listeners_[key].creationStack;
-
- // Check that the name of this test function occurs in the stack trace.
- assertContains('testCreationStack', listenerStack);
- goog.events.unlistenByKey(key);
- }
-
- /**
- * The behavior of goog.events when a UID changes is undefined.
- * We just want to make sure we don't throw an exception.
- */
- function testUidDisappearanceJsTargets() {
- var target = new goog.events.EventTarget();
- var listener = goog.testing.recordFunction();
- goog.events.listenOnce(target, 'foo', listener, false);
-
- goog.removeUid(target);
- target.dispatchEvent('foo');
- assertEquals(0, listener.getCallCount());
- }
-
- /**
- * The behavior of goog.events when a UID changes is undefined.
- * We just want to make sure we don't throw an exception.
- */
- function testUidDisappearanceBrowserTargets() {
- var listener = goog.testing.recordFunction();
- var body = document.body;
- goog.events.listenOnce(body, 'click', listener);
-
- goog.removeUid(body);
- dispatchClick(body);
- assertEquals(1, listener.getCallCount());
-
- // Make sure that dispatching again doesn't fire the listener.
- dispatchClick(body);
- assertEquals(1, listener.getCallCount());
- }
-
-</script>
-</body>
-</html>