diff --git a/spec/chatroom.js b/spec/chatroom.js
index 968643bfd..be5c75904 100644
--- a/spec/chatroom.js
+++ b/spec/chatroom.js
@@ -664,7 +664,16 @@
expect($input.length).toBe(1);
expect($input.attr('placeholder')).toBe('Invite');
$input.val("Felix");
- $input[0].dispatchEvent(new Event('input'));
+ var evt;
+ // check if Event() is a constructor function
+ // usage as per the spec, if true
+ if (typeof(Event) === 'function') {
+ evt = new Event('input');
+ } else { // the deprecated way for PhantomJS
+ evt = document.createEvent('CustomEvent');
+ evt.initCustomEvent('input', false, false, null);
+ }
+ $input[0].dispatchEvent(evt);
});
waits(350); // Needed, due to debounce
runs (function () {
@@ -676,18 +685,22 @@
expect($input.val()).toBe('Felix');
expect($hint[0].textContent).toBe('Felix Amsel');
expect($hint.length).toBe(1);
- var evt = new Event('mousedown', {'bubbles': true});
- evt.button = 0; // For some reason awesomplete wants this
- $hint[0].dispatchEvent(evt);
- expect(window.prompt).toHaveBeenCalled();
- expect(view.directInvite).toHaveBeenCalled();
- expect(sent_stanza.toLocaleString()).toBe(
- ""+
- ""+
- ""
- );
+ var evt;
+ if (typeof(Event) === 'function') {
+ // Not working on PhantomJS
+ evt = new Event('mousedown', {'bubbles': true});
+ evt.button = 0; // For some reason awesomplete wants this
+ $hint[0].dispatchEvent(evt);
+ expect(window.prompt).toHaveBeenCalled();
+ expect(view.directInvite).toHaveBeenCalled();
+ expect(sent_stanza.toLocaleString()).toBe(
+ ""+
+ ""+
+ ""
+ );
+ }
});
}));