mirror of
https://github.com/zulip/zulip.git
synced 2026-06-24 21:08:25 +08:00
Internally we generally omit our own id and email in data structures related to PMs, except when we are the sender, but if we receive "perma links" we will need to filter out our id.
180 lines
5.2 KiB
JavaScript
180 lines
5.2 KiB
JavaScript
zrequire('hash_util');
|
|
zrequire('hashchange');
|
|
zrequire('narrow_state');
|
|
zrequire('people');
|
|
zrequire('stream_data');
|
|
zrequire('Filter', 'js/filter');
|
|
set_global('i18n', global.stub_i18n);
|
|
|
|
zrequire('narrow');
|
|
|
|
function set_filter(operators) {
|
|
operators = _.map(operators, function (op) {
|
|
return {operator: op[0], operand: op[1]};
|
|
});
|
|
narrow_state.set_current_filter(new Filter(operators));
|
|
}
|
|
|
|
var me = {
|
|
email: '[email protected]',
|
|
user_id: 5,
|
|
full_name: 'Me Myself',
|
|
};
|
|
|
|
var alice = {
|
|
email: '[email protected]',
|
|
user_id: 23,
|
|
full_name: 'Alice Smith',
|
|
};
|
|
|
|
var ray = {
|
|
email: '[email protected]',
|
|
user_id: 22,
|
|
full_name: 'Raymond',
|
|
};
|
|
|
|
run_test('stream_topic', () => {
|
|
set_filter([['stream', 'Foo'], ['topic', 'Bar'], ['search', 'Yo']]);
|
|
|
|
set_global('current_msg_list', {
|
|
});
|
|
|
|
global.current_msg_list.selected_message = function () {};
|
|
|
|
var stream_topic = narrow.stream_topic();
|
|
|
|
assert.deepEqual(stream_topic, {
|
|
stream: 'Foo',
|
|
topic: 'Bar',
|
|
});
|
|
|
|
global.current_msg_list.selected_message = function () {
|
|
return {
|
|
stream: 'Stream1',
|
|
subject: 'Topic1',
|
|
};
|
|
};
|
|
|
|
stream_topic = narrow.stream_topic();
|
|
|
|
assert.deepEqual(stream_topic, {
|
|
stream: 'Stream1',
|
|
topic: 'Topic1',
|
|
});
|
|
|
|
});
|
|
|
|
run_test('uris', () => {
|
|
people.add(ray);
|
|
people.add(alice);
|
|
people.add(me);
|
|
people.initialize_current_user(me.user_id);
|
|
|
|
var uri = hash_util.pm_with_uri(ray.email);
|
|
assert.equal(uri, '#narrow/pm-with/22-ray');
|
|
|
|
uri = hash_util.huddle_with_uri("22,23");
|
|
assert.equal(uri, '#narrow/pm-with/22,23-group');
|
|
|
|
uri = hash_util.by_sender_uri(ray.email);
|
|
assert.equal(uri, '#narrow/sender/22-ray');
|
|
|
|
var emails = global.hash_util.decode_operand('pm-with', '22,23-group');
|
|
assert.equal(emails, '[email protected],[email protected]');
|
|
|
|
emails = global.hash_util.decode_operand('pm-with', '5,22,23-group');
|
|
assert.equal(emails, '[email protected],[email protected]');
|
|
|
|
emails = global.hash_util.decode_operand('pm-with', '5-group');
|
|
assert.equal(emails, '[email protected]');
|
|
});
|
|
|
|
run_test('show_empty_narrow_message', () => {
|
|
|
|
var hide_id;
|
|
var show_id;
|
|
var attr_id;
|
|
set_global('$', (id) => {
|
|
return {
|
|
hide: () => {hide_id = id;},
|
|
show: () => {show_id = id;},
|
|
attr: () => {attr_id = id;},
|
|
};
|
|
});
|
|
|
|
narrow_state.reset_current_filter();
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#empty_narrow_message');
|
|
assert.equal(attr_id, '#left_bar_compose_reply_button_big');
|
|
|
|
// for non-existent or private stream
|
|
set_filter([['stream', 'Foo']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#nonsubbed_private_nonexistent_stream_narrow_message');
|
|
|
|
// for non sub public stream
|
|
stream_data.add_sub('ROME', {name: 'ROME', stream_id: 99});
|
|
set_filter([['stream', 'Rome']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#nonsubbed_stream_narrow_message');
|
|
|
|
set_filter([['is', 'starred']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#empty_star_narrow_message');
|
|
|
|
set_filter([['is', 'mentioned']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#empty_narrow_all_mentioned');
|
|
|
|
set_filter([['is', 'private']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#empty_narrow_all_private_message');
|
|
|
|
set_filter([['is', 'unread']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#no_unread_narrow_message');
|
|
|
|
set_filter([['pm-with', ['Yo']]]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#non_existing_user');
|
|
|
|
people.add_in_realm(alice);
|
|
set_filter([['pm-with', ['[email protected]', 'Yo']]]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#non_existing_users');
|
|
|
|
set_filter([['pm-with', '[email protected]']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#empty_narrow_private_message');
|
|
|
|
set_filter([['group-pm-with', '[email protected]']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#empty_narrow_group_private_message');
|
|
|
|
set_filter([['sender', '[email protected]']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#silent_user');
|
|
|
|
set_filter([['sender', '[email protected]']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#non_existing_user');
|
|
|
|
set_filter([['search', 'grail']]);
|
|
narrow.show_empty_narrow_message();
|
|
assert.equal(hide_id,'.empty_feed_notice');
|
|
assert.equal(show_id, '#empty_search_narrow_message');
|
|
});
|