add_dependencies({ people: 'js/people.js', }); set_global('page_params', { alert_words: ['alertone', 'alerttwo', 'alertthree', 'al*rt.*s', '.+', 'emoji'], }); set_global('feature_flags', { alert_words: true, }); global.people.add({ email: 'tester@zulip.com', full_name: 'Tester von Tester', user_id: 42, }); global.people.initialize_current_user(42); var alert_words = require('js/alert_words.js'); var regular_message = { sender_email: 'another@zulip.com', content: '
a message
'}; var own_message = { sender_email: 'tester@zulip.com', content: 'hey this message alertone
', alerted: true }; var other_message = { sender_email: 'another@zulip.com', content: 'another alertone message
', alerted: true }; var caps_message = { sender_email: 'another@zulip.com', content: 'another ALERTtwo message
', alerted: true }; var alertwordboundary_message = { sender_email: 'another@zulip.com', content: 'another alertthreemessage
', alerted: false }; var multialert_message = { sender_email: 'another@zulip.com', content: 'another alertthreemessage alertone and then alerttwo
', alerted: true }; var unsafe_word_message = { sender_email: 'another@zulip.com', content: 'gotta al*rt.*s all
', alerted: true }; var alert_in_url_message = { sender_email: 'another@zulip.com', content: 'http://www.google.com/alertone/me
', alerted: true }; var question_word_message = { sender_email: 'another@zulip.com', content: 'still alertone? me
', alerted: true }; var alert_domain_message = { sender_email: 'another@zulip.com', content: 'now with link www.alerttwo.us/foo/bar
', alerted: true }; // This test ensure we are not mucking up rendered HTML content. var message_with_emoji = { sender_email: 'another@zulip.com', content: 'I emoji!
', alerted: true }; (function test_notifications() { assert(!alert_words.notifies(regular_message)); assert(!alert_words.notifies(own_message)); assert(alert_words.notifies(other_message)); assert(alert_words.notifies(caps_message)); assert(!alert_words.notifies(alertwordboundary_message)); assert(alert_words.notifies(multialert_message)); assert(alert_words.notifies(unsafe_word_message)); assert(alert_words.notifies(alert_domain_message)); assert(alert_words.notifies(message_with_emoji)); }()); (function test_munging() { var saved_content = regular_message.content; alert_words.process_message(regular_message); assert.equal(saved_content, regular_message.content); saved_content = alertwordboundary_message.content; alert_words.process_message(alertwordboundary_message); assert.equal(alertwordboundary_message.content, saved_content); alert_words.process_message(other_message); assert.equal(other_message.content, "another alertone message
"); alert_words.process_message(caps_message); assert.equal(caps_message.content, "another ALERTtwo message
"); alert_words.process_message(multialert_message); assert.equal(multialert_message.content, "another alertthreemessage alertone and then alerttwo
"); alert_words.process_message(unsafe_word_message); assert.equal(unsafe_word_message.content, "gotta al*rt.*s all
"); alert_words.process_message(alert_in_url_message); assert.equal(alert_in_url_message.content, "http://www.google.com/alertone/me
"); alert_words.process_message(question_word_message); assert.equal(question_word_message.content, "still alertone? me
"); alert_words.process_message(alert_domain_message); assert.equal(alert_domain_message.content, 'now with link www.alerttwo.us/foo/bar
'); alert_words.process_message(message_with_emoji); assert.equal(message_with_emoji.content, 'I emoji!
'); }());