UNPKG

este-library-oldschool

Version:

Library for github.com/steida/este.git

294 lines 10 kB
// Generated by github.com/steida/coffee2closure 900.1.18 suite('este.ui.Resizer', function() { var Resizer, delegation, delegationFactory, element, fireDelegationMouseOut, fireDelegationMouseOver, handles, handlesFactory, resizer; Resizer = este.ui.Resizer; element = null; delegation = null; delegationFactory = null; handles = null; handlesFactory = null; resizer = null; fireDelegationMouseOver = function() { return goog.events.fireListeners(delegation, 'mouseover', false, {}); }; fireDelegationMouseOut = function() { return goog.events.fireListeners(delegation, 'mouseout', false, {}); }; setup(function() { element = document.createElement('div'); element.offsetWidth = 50; element.offsetHeight = 60; delegation = { addEventListener: function() {}, dispose: function() {} }; delegationFactory = function() { return delegation; }; handles = { vertical: document.createElement('div'), horizontal: document.createElement('div'), addEventListener: function() {}, decorate: function() {}, isHandle: function() {}, dispose: function() { return this.disposed_ = true; } }; handlesFactory = function() { return handles; }; return resizer = new Resizer(delegationFactory, handlesFactory); }); suite('Resizer.create', function() { return test('should create instance', function() { resizer = Resizer.create(); return assert.instanceOf(resizer, Resizer); }); }); suite('decorate', function() { return test('should call delegationFactory with arguments', function(done) { var targetFilter, targetParentFilter; targetFilter = function() {}; targetParentFilter = function() {}; delegationFactory = function(p_element, p_eventTypes, p_targetFilter, p_targetParentFilter) { assert.equal(p_element, element); assert.deepEqual(p_eventTypes, ['mouseover', 'mouseout']); assert.equal(p_targetFilter, targetFilter); assert.equal(p_targetParentFilter, targetParentFilter); done(); return { addEventListener: function() {} }; }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.targetFilter = targetFilter; resizer.targetParentFilter = targetParentFilter; return resizer.decorate(element); }); }); suite('enterDocument', function() { return test('should call delegationFactory', function(done) { delegationFactory = function() { done(); return { addEventListener: function() {} }; }; resizer = new Resizer(delegationFactory, handlesFactory); return resizer.enterDocument(); }); }); suite('exitDocument', function() { return test('should call dispose on delegation', function(done) { delegation.dispose = function() { return done(); }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.enterDocument(); return resizer.exitDocument(); }); }); suite('delegation mouseover event on decorated resizer', function() { test('should call handlesFactory', function(done) { handlesFactory = function() { done(); return handles; }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); return fireDelegationMouseOver(); }); test('should decorate handles with event delegation target', function(done) { var target; target = {}; handles.decorate = function(p_element) { assert.equal(p_element, target); return done(); }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); return goog.events.fireListeners(delegation, 'mouseover', false, { target: target }); }); return test('should dispose yet rendered handles', function(done) { handles.dispose = function() { return done(); }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); fireDelegationMouseOver(); return goog.events.fireListeners(delegation, 'mouseover', false, {}); }); }); suite('delegation mouseout event on decorated resizer', function() { test('should dispose handles', function(done) { handles.dispose = function() { return done(); }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); fireDelegationMouseOver(); return goog.events.fireListeners(delegation, 'mouseout', false, {}); }); return test('should not dispose handles if relatedTarget is handle', function() { var called, relatedTarget; relatedTarget = {}; called = false; handles.dispose = function() { return called = true; }; handles.isHandle = function(el) { return el === relatedTarget; }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); goog.events.fireListeners(delegation, 'mouseover', false, {}); goog.events.fireListeners(delegation, 'mouseout', false, { relatedTarget: relatedTarget }); return assert.isFalse(called); }); }); suite('dispose', function() { return test('should dispose handles on decorated resizer', function(done) { handles.dispose = function() { return done(); }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); goog.events.fireListeners(delegation, 'mouseover', false, {}); return resizer.dispose(); }); }); suite('mouseout on handles', function() { return test('should dispose handles', function(done) { handles.dispose = function() { return done(); }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); fireDelegationMouseOver(); return goog.events.fireListeners(handles, 'mouseout', false, {}); }); }); suite('handles start event before delegation mouseover', function() { test('should not dispose handles', function() { var called; called = false; handles.dispose = function() { return called = true; }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); fireDelegationMouseOver(); goog.events.fireListeners(handles, 'start', false, { element: element }); fireDelegationMouseOver(); return assert.isFalse(called); }); return test('should dispose handles after drag end', function() { var called; called = false; handles.dispose = function() { return called = true; }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); fireDelegationMouseOver(); goog.events.fireListeners(handles, 'start', false, { element: element }); goog.events.fireListeners(handles, 'end', false, {}); fireDelegationMouseOver(); return assert.isTrue(called); }); }); suite('handles start event before delegation mouseout', function() { test('should not dispose handles', function() { var called; called = false; handles.dispose = function() { return called = true; }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); fireDelegationMouseOver(); goog.events.fireListeners(handles, 'start', false, { element: element }); fireDelegationMouseOut(); return assert.isFalse(called); }); return test('should dispose handles after drag end', function() { var called; called = false; handles.dispose = function() { return called = true; }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); fireDelegationMouseOver(); goog.events.fireListeners(handles, 'start', false, { element: element }); goog.events.fireListeners(handles, 'end', false, {}); fireDelegationMouseOut(); return assert.isTrue(called); }); }); return suite('handles drag end event', function() { test('should dispose handles if e.close is true', function() { var called; called = false; handles.dispose = function() { return called = true; }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); fireDelegationMouseOver(); goog.events.fireListeners(handles, 'start', false, { element: element }); goog.events.fireListeners(handles, 'end', false, { close: true }); return assert.isTrue(called); }); test('should not dispose handles if e.close is false', function() { var called; called = false; handles.dispose = function() { return called = true; }; resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); fireDelegationMouseOver(); goog.events.fireListeners(handles, 'start', false, { element: element }); goog.events.fireListeners(handles, 'end', false, { close: false }); return assert.isFalse(called); }); return test('should dispatch resizeend event', function(done) { resizer = new Resizer(delegationFactory, handlesFactory); resizer.decorate(element); fireDelegationMouseOver(); goog.events.listen(resizer, 'resizeend', function(e) { assert.equal(e.element, element); return done(); }); goog.events.fireListeners(handles, 'start', false, { element: element }); return goog.events.fireListeners(handles, 'end', false, { element: element, close: false }); }); }); });