~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/answers/javascript/tests/test_subscribers.js

Wire up question subscription portal

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
YUI().use('lp.testing.runner', 'test', 'console', 'node', 'lazr.picker',
 
2
           'lp.answers.subscribers',
 
3
           'event', 'node-event-simulate', 'dump', function(Y) {
 
4
 
 
5
var suite = new Y.Test.Suite("lp.answers.subscribers Tests");
 
6
var module = Y.lp.answers.subscribers;
 
7
 
 
8
 
 
9
suite.add(new Y.Test.Case({
 
10
    name: 'QuestionSubscribersList constructor test',
 
11
 
 
12
    setUp: function() {
 
13
        this.root = Y.Node.create('<div />');
 
14
        Y.one('body').appendChild(this.root);
 
15
    },
 
16
 
 
17
    tearDown: function() {
 
18
        this.root.remove();
 
19
    },
 
20
 
 
21
    setUpLoader: function() {
 
22
        this.root.appendChild(
 
23
            Y.Node.create('<div />').addClass('container'));
 
24
        var question = { web_link: '/base', self_link: '/question/1'};
 
25
        return new module.createQuestionSubscribersLoader({
 
26
            container_box: '.container',
 
27
            question: question,
 
28
            subscribers_details_view: '/+portlet-subscribers-details'});
 
29
    },
 
30
 
 
31
    test_subscribers_list_instantiation: function() {
 
32
        this.setUpLoader();
 
33
    },
 
34
 
 
35
    test_addSubscriber: function() {
 
36
        // Check that the subscription list has been created with the expected
 
37
        // subscription levels for questions. This can be done by adding a
 
38
        // subscriber to one of the expected levels and checking the results.
 
39
        var loader = this.setUpLoader(this.root);
 
40
        var node = loader.subscribers_list.addSubscriber(
 
41
            { name: 'user' }, 'Direct');
 
42
 
 
43
        // Node is constructed using _createSubscriberNode.
 
44
        Y.Assert.isTrue(node.hasClass('subscriber'));
 
45
        // And the ID is set inside addSubscriber() method.
 
46
        Y.Assert.areEqual('subscriber-user', node.get('id'));
 
47
 
 
48
        // And it nested in the subscribers-list of a 'Direct' section.
 
49
        var list_node = node.ancestor('.subscribers-list');
 
50
        Y.Assert.isNotNull(list_node);
 
51
        var section_node = list_node.ancestor(
 
52
            '.subscribers-section-direct');
 
53
        Y.Assert.isNotNull(section_node);
 
54
    }
 
55
}));
 
56
 
 
57
Y.lp.testing.Runner.run(suite);
 
58
 
 
59
});