Chris@1494
|
1 # Redmine - project management software
|
Chris@1494
|
2 # Copyright (C) 2006-2014 Jean-Philippe Lang
|
Chris@1494
|
3 #
|
Chris@1494
|
4 # This program is free software; you can redistribute it and/or
|
Chris@1494
|
5 # modify it under the terms of the GNU General Public License
|
Chris@1494
|
6 # as published by the Free Software Foundation; either version 2
|
Chris@1494
|
7 # of the License, or (at your option) any later version.
|
Chris@1494
|
8 #
|
Chris@1494
|
9 # This program is distributed in the hope that it will be useful,
|
Chris@1494
|
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
|
Chris@1494
|
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
Chris@1494
|
12 # GNU General Public License for more details.
|
Chris@1494
|
13 #
|
Chris@1494
|
14 # You should have received a copy of the GNU General Public License
|
Chris@1494
|
15 # along with this program; if not, write to the Free Software
|
Chris@1494
|
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
Chris@1494
|
17
|
Chris@1494
|
18 require File.expand_path('../../../test_helper', __FILE__)
|
Chris@1494
|
19
|
Chris@1494
|
20 class WatchersHelperTest < ActionView::TestCase
|
Chris@1494
|
21 include WatchersHelper
|
Chris@1494
|
22 include Redmine::I18n
|
Chris@1494
|
23
|
Chris@1494
|
24 fixtures :users, :issues
|
Chris@1494
|
25
|
Chris@1494
|
26 def setup
|
Chris@1494
|
27 super
|
Chris@1494
|
28 set_language_if_valid('en')
|
Chris@1494
|
29 User.current = nil
|
Chris@1494
|
30 end
|
Chris@1494
|
31
|
Chris@1494
|
32 test '#watcher_link with a non-watched object' do
|
Chris@1494
|
33 expected = link_to(
|
Chris@1494
|
34 "Watch",
|
Chris@1494
|
35 "/watchers/watch?object_id=1&object_type=issue",
|
Chris@1494
|
36 :remote => true, :method => 'post', :class => "issue-1-watcher icon icon-fav-off"
|
Chris@1494
|
37 )
|
Chris@1494
|
38 assert_equal expected, watcher_link(Issue.find(1), User.find(1))
|
Chris@1494
|
39 end
|
Chris@1494
|
40
|
Chris@1494
|
41 test '#watcher_link with a single objet array' do
|
Chris@1494
|
42 expected = link_to(
|
Chris@1494
|
43 "Watch",
|
Chris@1494
|
44 "/watchers/watch?object_id=1&object_type=issue",
|
Chris@1494
|
45 :remote => true, :method => 'post', :class => "issue-1-watcher icon icon-fav-off"
|
Chris@1494
|
46 )
|
Chris@1494
|
47 assert_equal expected, watcher_link([Issue.find(1)], User.find(1))
|
Chris@1494
|
48 end
|
Chris@1494
|
49
|
Chris@1494
|
50 test '#watcher_link with a multiple objets array' do
|
Chris@1494
|
51 expected = link_to(
|
Chris@1494
|
52 "Watch",
|
Chris@1494
|
53 "/watchers/watch?object_id%5B%5D=1&object_id%5B%5D=3&object_type=issue",
|
Chris@1494
|
54 :remote => true, :method => 'post', :class => "issue-bulk-watcher icon icon-fav-off"
|
Chris@1494
|
55 )
|
Chris@1494
|
56 assert_equal expected, watcher_link([Issue.find(1), Issue.find(3)], User.find(1))
|
Chris@1494
|
57 end
|
Chris@1494
|
58
|
Chris@1494
|
59 test '#watcher_link with a watched object' do
|
Chris@1494
|
60 Watcher.create!(:watchable => Issue.find(1), :user => User.find(1))
|
Chris@1494
|
61
|
Chris@1494
|
62 expected = link_to(
|
Chris@1494
|
63 "Unwatch",
|
Chris@1494
|
64 "/watchers/watch?object_id=1&object_type=issue",
|
Chris@1494
|
65 :remote => true, :method => 'delete', :class => "issue-1-watcher icon icon-fav"
|
Chris@1494
|
66 )
|
Chris@1494
|
67 assert_equal expected, watcher_link(Issue.find(1), User.find(1))
|
Chris@1494
|
68 end
|
Chris@1494
|
69 end
|