Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
it('should attach listeners from element content', function() {
var CustomComponent = createTestComponentClass({
main: '<button data-onclick="handleClick" class="elementButton"></button>'
});
CustomComponent.prototype.handleClick = sinon.stub();
component = new CustomComponent({
id: 'main'
}).render();
var button = component.element.querySelector('.elementButton');
dom.triggerEvent(button, 'click');
assert.strictEqual(1, component.handleClick.callCount);
});
it('should attach listeners from surface element tag', function() {
var CustomComponent = createTestComponentClass({
main: '%%%%~s-main-foo~%%%%',
'main-foo': '<div data-onclick="handleClick" id="main-foo"></div>'
});
CustomComponent.prototype.handleClick = sinon.stub();
component = new CustomComponent({
id: 'main'
}).render();
var element = component.element.querySelector('#main-foo');
dom.triggerEvent(element, 'click');
assert.strictEqual(1, component.handleClick.callCount);
});
it('should transfer events listened through "on" function to new element', function() {
comp = new Component();
var element = comp.element;
var listener = sinon.stub();
comp.on('click', listener);
var newElement = document.createElement('div');
comp.element = newElement;
dom.triggerEvent(element, 'click');
assert.strictEqual(0, listener.callCount);
dom.triggerEvent(newElement, 'click');
assert.strictEqual(1, listener.callCount);
comp.dispose();
dom.triggerEvent(newElement, 'click');
assert.strictEqual(1, listener.callCount);
});
it('should not capture form if navigate fails when submitting forms', () => {
var form = enterDocumentFormElement('/path', 'post');
this.app = new App();
this.app.setAllowPreventNavigate(false);
dom.on(form, 'submit', preventDefault);
dom.triggerEvent(form, 'submit');
assert.ok(!globals.capturedFormElement);
exitDocument(form);
});
it('should listen to custom events on the element', function() {
var CustomComponent = createCustomComponentClass();
comp = new CustomComponent();
var listener = sinon.stub();
comp.on('transitionend', listener);
dom.triggerEvent(comp.element, features.checkAnimationEventName().transition);
assert.strictEqual(1, listener.callCount);
});
it('should attach delegate events with specified selector', function() {
var CustomComponent = createCustomComponentClass('<button class="testButton"></button>');
CustomComponent.prototype.listener1 = sinon.stub();
comp = new CustomComponent({
events: {
click: {
fn: 'listener1',
selector: '.testButton'
}
}
});
dom.triggerEvent(comp.element, 'click');
assert.strictEqual(0, comp.listener1.callCount);
dom.triggerEvent(comp.element.querySelector('.testButton'), 'click');
assert.strictEqual(1, comp.listener1.callCount);
});
it('should attach delegate events with specified selector', function() {
var CustomComponent = createCustomComponentClass('<button class="testButton"></button>');
CustomComponent.prototype.listener1 = sinon.stub();
comp = new CustomComponent({
events: {
click: {
fn: 'listener1',
selector: '.testButton'
}
}
});
dom.triggerEvent(comp.element, 'click');
assert.strictEqual(0, comp.listener1.callCount);
dom.triggerEvent(comp.element.querySelector('.testButton'), 'click');
assert.strictEqual(1, comp.listener1.callCount);
});
load(path) {
dom.triggerEvent(enterDocumentLinkElement('/path3'), 'click');
exitDocumentLinkElement();
return super.load(path);
}
}
var CustomComponent = createCustomComponentClass('<div class="foo"></div>');
comp = new CustomComponent();
var fooElement = comp.element.querySelector('.foo');
var listener = sinon.stub();
comp.delegate('click', '.foo', listener);
var newElement = document.createElement('div');
comp.element = newElement;
dom.append(newElement, '<div class="foo"></div>');
dom.triggerEvent(fooElement, 'click');
assert.strictEqual(0, listener.callCount);
var newFooElement = newElement.querySelector('.foo');
dom.triggerEvent(newFooElement, 'click');
assert.strictEqual(1, listener.callCount);
comp.dispose();
dom.triggerEvent(newFooElement, 'click');
assert.strictEqual(1, listener.callCount);
});
this.app.setAllowPreventNavigate(false);
this.app.addRoutes(new Route('/path', Screen));
dom.on(link, 'click', preventDefault);
dom.triggerEvent(link, 'click', {
altKey: true
});
dom.triggerEvent(link, 'click', {
ctrlKey: true
});
dom.triggerEvent(link, 'click', {
metaKey: true
});
dom.triggerEvent(link, 'click', {
shiftKey: true
});
dom.triggerEvent(link, 'click', {
button: true
});
assert.strictEqual(null, this.app.pendingNavigate);
exitDocumentLinkElement();
});