2014-01-16 21:38:40 +01:00
|
|
|
set_global('$', function () {});
|
|
|
|
|
2013-11-26 16:39:58 +01:00
|
|
|
add_dependencies({
|
|
|
|
Handlebars: 'handlebars',
|
|
|
|
templates: 'js/templates',
|
|
|
|
muting: 'js/muting',
|
|
|
|
narrow: 'js/narrow',
|
2014-01-16 21:38:40 +01:00
|
|
|
stream_color: 'js/stream_color',
|
|
|
|
stream_data: 'js/stream_data',
|
|
|
|
subs: 'js/subs',
|
2013-11-26 16:39:58 +01:00
|
|
|
hashchange: 'js/hashchange'
|
|
|
|
});
|
|
|
|
|
|
|
|
set_global('recent_subjects', new global.Dict());
|
|
|
|
set_global('unread', {});
|
|
|
|
|
|
|
|
var stream_list = require('js/stream_list.js');
|
|
|
|
|
2015-10-26 17:16:26 +01:00
|
|
|
global.$ = require('jQuery');
|
2014-01-16 21:38:40 +01:00
|
|
|
$.fn.expectOne = function () {
|
|
|
|
assert(this.length === 1);
|
|
|
|
return this;
|
|
|
|
};
|
2013-11-27 20:48:34 +01:00
|
|
|
|
2013-11-26 16:39:58 +01:00
|
|
|
global.use_template('sidebar_subject_list');
|
2014-01-16 21:38:40 +01:00
|
|
|
global.use_template('stream_sidebar_row');
|
2014-01-16 17:42:11 +01:00
|
|
|
global.use_template('stream_privacy');
|
2013-11-26 16:39:58 +01:00
|
|
|
|
|
|
|
(function test_build_subject_list() {
|
|
|
|
var stream = "devel";
|
|
|
|
var active_topic = "testing";
|
|
|
|
var max_topics = 5;
|
|
|
|
|
|
|
|
var topics = [
|
|
|
|
{subject: "coding"}
|
|
|
|
];
|
|
|
|
global.recent_subjects.set("devel", topics);
|
|
|
|
global.unread.num_unread_for_subject = function () {
|
|
|
|
return 1;
|
|
|
|
};
|
|
|
|
|
|
|
|
var topic_html = stream_list._build_subject_list(stream, active_topic, max_topics);
|
2013-11-27 17:23:13 +01:00
|
|
|
global.write_test_output("test_build_subject_list", topic_html);
|
2013-11-27 20:48:34 +01:00
|
|
|
|
|
|
|
var topic = $(topic_html).find('a').text().trim();
|
|
|
|
assert.equal(topic, 'coding');
|
2013-11-26 16:39:58 +01:00
|
|
|
}());
|
2014-01-16 21:38:40 +01:00
|
|
|
|
|
|
|
(function test_add_stream_to_sidebar() {
|
|
|
|
// Make a couple calls to add_stream_to_sidebar() and make sure they
|
|
|
|
// generate the right markup as well as play nice with get_stream_li().
|
|
|
|
|
|
|
|
var stream_filters = $('<ul id="stream_filters">');
|
|
|
|
$("body").append(stream_filters);
|
|
|
|
|
|
|
|
var stream = "devel";
|
|
|
|
|
|
|
|
var sub = {
|
|
|
|
name: 'devel',
|
2014-02-05 20:35:16 +01:00
|
|
|
stream_id: 1000,
|
2014-01-16 21:38:40 +01:00
|
|
|
color: 'blue',
|
|
|
|
id: 5
|
|
|
|
};
|
|
|
|
global.stream_data.add_sub('devel', sub);
|
|
|
|
|
|
|
|
sub = {
|
|
|
|
name: 'social',
|
2014-02-05 20:35:16 +01:00
|
|
|
stream_id: 2000,
|
2014-01-16 21:38:40 +01:00
|
|
|
color: 'green',
|
|
|
|
id: 6
|
|
|
|
};
|
|
|
|
global.stream_data.add_sub('social', sub);
|
|
|
|
|
|
|
|
stream_list.add_stream_to_sidebar('devel');
|
|
|
|
stream_list.add_stream_to_sidebar('social');
|
|
|
|
|
|
|
|
var html = $("body").html();
|
|
|
|
global.write_test_output("test_add_stream_to_sidebar", html);
|
|
|
|
|
|
|
|
var li = stream_list.get_stream_li('social');
|
|
|
|
assert.equal(li.attr('data-name'), 'social');
|
|
|
|
assert.equal(li.find('.streamlist_swatch').css('background-color'), 'green');
|
|
|
|
assert.equal(li.find('a.subscription_name').text().trim(), 'social');
|
|
|
|
assert(li.find('.arrow').find("i").hasClass("icon-vector-chevron-down"));
|
|
|
|
|
2014-01-17 18:23:39 +01:00
|
|
|
global.append_test_output("Then make 'social' private.");
|
|
|
|
global.stream_data.get_sub('social').invite_only = true;
|
|
|
|
stream_list.redraw_stream_privacy('social');
|
|
|
|
|
|
|
|
html = $("body").html();
|
|
|
|
global.append_test_output(html);
|
|
|
|
|
|
|
|
assert(li.find('.stream-privacy').find("i").hasClass("icon-vector-lock"));
|
2014-01-16 21:38:40 +01:00
|
|
|
}());
|