Revision 1297:0a574315af3e .svn/pristine/ba

View differences:

.svn/pristine/ba/ba17318dbb463f926062c32d7de0e2c9351f38c4.svn-base
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
3
<head>
4
<title>RedmineWikiFormatting</title>
5
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
<style type="text/css">
7
    body { font:80% Verdana,Tahoma,Arial,sans-serif; }
8
    h1, h2, h3, h4 {  font-family: Trebuchet MS,Georgia,"Times New Roman",serif; }
9
    pre, code { font-size:120%; }
10
    pre code { font-size:100%; }
11
    pre {
12
        margin: 1em 1em 1em 1.6em;
13
        padding: 2px;
14
        background-color: #fafafa;
15
        border: 1px solid #dadada;
16
        width:95%;
17
        overflow-x: auto;
18
    }
19
    a.new { color: #b73535; }
20

  
21
    .syntaxhl .line-numbers { padding: 2px 4px 2px 4px; background-color: #eee; margin:0 }
22
    .syntaxhl .comment  { color:#666; }
23

  
24
    .syntaxhl .class { color:#B06; font-weight:bold }
25
    .syntaxhl .delimiter { color:black }
26
    .syntaxhl .function { color:#06B; font-weight:bold }
27

  
28
    .syntaxhl .inline { background: #eee }
29
    .syntaxhl .inline .inline-delimiter { font-weight: bold; color: #888 }
30

  
31
    .syntaxhl .instance-variable { color:#33B }
32
    .syntaxhl .reserved { color:#080; font-weight:bold }
33

  
34
    .syntaxhl .string { background-color:#fff0f0; color: #D20; }
35
    .syntaxhl .string .delimiter { color:#710 }
36

  
37
</style>
38
</head>
39

  
40
<body>
41
<h1><a name="1" class="wiki-page"></a>Wiki formatting</h1>
42

  
43
    <h2><a name="2" class="wiki-page"></a>Links</h2>
44

  
45
        <h3><a name="3" class="wiki-page"></a>Redmine links</h3>
46

  
47
        <p>Redmine allows hyperlinking between resources (issues, changesets, wiki pages...) from anywhere wiki formatting is used.</p>
48
        <ul>
49
            <li>Link to an issue: <strong>#124</strong> (displays <del><a href="#" class="issue" title="bulk edit doesn't change the category or fixed version properties (Closed)">#124</a></del>, link is striked-through if the issue is closed)</li>
50
            <li>Link to an issue note: <strong>#124-6</strong>, or <strong>#124#note-6</strong></li>
51
        </ul>
52

  
53
        <p>Wiki links:</p>
54

  
55
        <ul>
56
            <li><strong>[[Guide]]</strong> displays a link to the page named 'Guide': <a href="#" class="wiki-page">Guide</a></li>
57
            <li><strong>[[Guide#further-reading]]</strong> takes you to the anchor "further-reading". Headings get automatically assigned anchors so that you can refer to them: <a href="#" class="wiki-page">Guide</a></li>
58
            <li><strong>[[Guide|User manual]]</strong> displays a link to the same page but with a different text: <a href="#" class="wiki-page">User manual</a></li>
59
        </ul>
60

  
61
        <p>You can also link to pages of an other project wiki:</p>
62

  
63
        <ul>
64
            <li><strong>[[sandbox:some page]]</strong> displays a link to the page named 'Some page' of the Sandbox wiki</li>
65
            <li><strong>[[sandbox:]]</strong> displays a link to the Sandbox wiki main page</li>
66
        </ul>
67

  
68
        <p>Wiki links are displayed in red if the page doesn't exist yet, eg: <a href="#" class="wiki-page new">Nonexistent page</a>.</p>
69

  
70
        <p>Links to other resources:</p>
71

  
72
        <ul>
73
            <li>Documents:
74
                <ul>
75
                    <li><strong>document#17</strong> (link to document with id 17)</li>
76
                    <li><strong>document:Greetings</strong> (link to the document with title "Greetings")</li>
77
                    <li><strong>document:"Some document"</strong> (double quotes can be used when document title contains spaces)</li>
78
                    <li><strong>sandbox:document:"Some document"</strong> (link to a document with title "Some document" in other project "sandbox")</li>
79
                </ul></li>
80
        </ul>
81

  
82
        <ul>
83
            <li>Versions:
84
                <ul>
85
                    <li><strong>version#3</strong> (link to version with id 3)</li>
86
                    <li><strong>version:1.0.0</strong> (link to version named "1.0.0")</li>
87
                    <li><strong>version:"1.0 beta 2"</strong></li>
88
                    <li><strong>sandbox:version:1.0.0</strong> (link to version "1.0.0" in the project "sandbox")</li>
89
                </ul></li>
90
        </ul>
91

  
92
        <ul>
93
            <li>Attachments:
94
                <ul>
95
                    <li><strong>attachment:file.zip</strong> (link to the attachment of the current object named file.zip)</li>
96
                    <li>For now, attachments of the current object can be referenced only (if you're on an issue, it's possible to reference attachments of this issue only)</li>
97
                </ul></li>
98
        </ul>
99

  
100
        <ul>
101
            <li>Changesets:
102
                <ul>
103
                    <li><strong>r758</strong>                       (link to a changeset)</li>
104
                    <li><strong>commit:c6f4d0fd</strong>            (link to a changeset with a non-numeric hash)</li>
105
                    <li><strong>svn1|r758</strong>                  (link to a changeset of a specific repository, for projects with multiple repositories)</li>
106
                    <li><strong>commit:hg|c6f4d0fd</strong>         (link to a changeset with a non-numeric hash of a specific repository)</li>
107
                    <li><strong>sandbox:r758</strong>               (link to a changeset of another project)</li>
108
                    <li><strong>sandbox:commit:c6f4d0fd</strong>    (link to a changeset with a non-numeric hash of another project)</li>
109
                </ul></li>
110
        </ul>
111

  
112
        <ul>
113
             <li>Repository files:
114
                <ul>
115
                    <li><strong>source:some/file</strong>           (link to the file located at /some/file in the project's repository)</li>
116
                    <li><strong>source:some/file@52</strong>        (link to the file's revision 52)</li>
117
                    <li><strong>source:some/file#L120</strong>      (link to line 120 of the file)</li>
118
                    <li><strong>source:some/file@52#L120</strong>   (link to line 120 of the file's revision 52)</li>
119
                    <li><strong>source:"some file@52#L120"</strong> (use double quotes when the URL contains spaces</li>
120
                    <li><strong>export:some/file</strong>           (force the download of the file)</li>
121
                    <li><strong>source:svn1|some/file</strong>      (link to a file of a specific repository, for projects with multiple repositories)</li>
122
                    <li><strong>sandbox:source:some/file</strong>   (link to the file located at /some/file in the repository of the project "sandbox")</li>
123
                    <li><strong>sandbox:export:some/file</strong>   (force the download of the file)</li>
124
                </ul></li>
125
        </ul>
126

  
127
        <ul>
128
            <li>Forum messages:
129
                <ul>
130
                    <li><strong>message#1218</strong> (link to message with id 1218)</li>
131
                </ul></li>
132
        </ul>
133

  
134
        <ul>
135
            <li>Projects:
136
                <ul>
137
                    <li><strong>project#3</strong> (link to project with id 3)</li>
138
                    <li><strong>project:someproject</strong> (link to project named "someproject")</li>
139
                </ul></li>
140
        </ul>
141

  
142

  
143
        <p>Escaping:</p>
144

  
145
        <ul>
146
            <li>You can prevent Redmine links from being parsed by preceding them with an exclamation mark: !</li>
147
        </ul>
148

  
149

  
150
        <h3><a name="4" class="wiki-page"></a>External links</h3>
151

  
152
        <p>HTTP URLs and email addresses are automatically turned into clickable links:</p>
153

  
154
<pre>
155
http://www.redmine.org, someone@foo.bar
156
</pre>
157

  
158
        <p>displays: <a class="external" href="http://www.redmine.org">http://www.redmine.org</a>, <a href="mailto:someone@foo.bar" class="email">someone@foo.bar</a></p>
159

  
160
        <p>If you want to display a specific text instead of the URL, you can use the standard textile syntax:</p>
161

  
162
<pre>
163
"Redmine web site":http://www.redmine.org
164
</pre>
165

  
166
        <p>displays: <a href="http://www.redmine.org" class="external">Redmine web site</a></p>
167

  
168

  
169
    <h2><a name="5" class="wiki-page"></a>Text formatting</h2>
170

  
171

  
172
    <p>For things such as headlines, bold, tables, lists, Redmine supports Textile syntax.  See <a class="external" href="http://en.wikipedia.org/wiki/Textile_%28markup_language%29">http://en.wikipedia.org/wiki/Textile_(markup_language)</a> for information on using any of these features.  A few samples are included below, but the engine is capable of much more of that.</p>
173

  
174
        <h3><a name="6" class="wiki-page"></a>Font style</h3>
175

  
176
<pre>
177
* *bold*
178
* _italic_
179
* _*bold italic*_
180
* +underline+
181
* -strike-through-
182
</pre>
183

  
184
        <p>Display:</p>
185

  
186
        <ul>
187
            <li><strong>bold</strong></li>
188
            <li><em>italic</em></li>
189
            <li><em>*bold italic*</em></li>
190
            <li><ins>underline</ins></li>
191
            <li><del>strike-through</del></li>
192
        </ul>
193

  
194
        <h3><a name="7" class="wiki-page"></a>Inline images</h3>
195

  
196
        <ul>
197
            <li><strong>!image_url!</strong> displays an image located at image_url (textile syntax)</li>
198
            <li><strong>!>image_url!</strong> right floating image</li>
199
            <li>If you have an image attached to your wiki page, it can be displayed inline using its filename: <strong>!attached_image.png!</strong></li>
200
        </ul>
201

  
202
        <h3><a name="8" class="wiki-page"></a>Headings</h3>
203

  
204
<pre>
205
h1. Heading
206
h2. Subheading
207
h3. Subsubheading
208
</pre>
209

  
210
        <p>Redmine assigns an anchor to each of those headings thus you can link to them with "#Heading", "#Subheading" and so forth.</p>
211

  
212

  
213
        <h3><a name="9" class="wiki-page"></a>Paragraphs</h3>
214

  
215
<pre>
216
p>. right aligned
217
p=. centered
218
</pre>
219

  
220
        <p style="text-align:center;">This is a centered paragraph.</p>
221

  
222

  
223
        <h3><a name="10" class="wiki-page"></a>Blockquotes</h3>
224

  
225
        <p>Start the paragraph with <strong>bq.</strong></p>
226

  
227
<pre>
228
bq. Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
229
To go live, all you need to add is a database and a web server.
230
</pre>
231

  
232
        <p>Display:</p>
233

  
234
        <blockquote>
235
                <p>Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.<br />To go live, all you need to add is a database and a web server.</p>
236
        </blockquote>
237

  
238

  
239
        <h3><a name="11" class="wiki-page"></a>Table of content</h3>
240

  
241
<pre>
242
{{toc}} => left aligned toc
243
{{>toc}} => right aligned toc
244
</pre>
245

  
246
    <h2><a name="12" class="wiki-page"></a>Macros</h2>
247

  
248
    <p>Redmine has the following builtin macros:</p>
249

  
250
    <p><dl><dt><code>hello_world</code></dt><dd><p>Sample macro.</p></dd><dt><code>include</code></dt><dd><p>Include a wiki page. Example:</p>
251

  
252
    <pre><code>{{include(Foo)}}</code></pre></dd><dt><code>macro_list</code></dt><dd><p>Displays a list of all available macros, including description if available.</p></dd></dl></p>
253

  
254

  
255
    <h2><a name="13" class="wiki-page"></a>Code highlighting</h2>
256

  
257
    <p>Default code highlightment relies on <a href="http://coderay.rubychan.de/" class="external">CodeRay</a>, a fast syntax highlighting library written completely in Ruby. It currently supports c, cpp, css, delphi, groovy, html, java, javascript, json, php, python, rhtml, ruby, scheme, sql, xml and yaml languages.</p>
258

  
259
    <p>You can highlight code in your wiki page using this syntax:</p>
260

  
261
<pre>
262
&lt;pre&gt;&lt;code class="ruby"&gt;
263
  Place you code here.
264
&lt;/code&gt;&lt;/pre&gt;
265
</pre>
266

  
267
    <p>Example:</p>
268

  
269
<pre><code class="ruby syntaxhl"><span class="line-numbers"> 1</span> <span class="comment"># The Greeter class</span>
270
<span class="line-numbers"> 2</span> <span class="reserved">class</span> <span class="class">Greeter</span>
271
<span class="line-numbers"> 3</span>   <span class="reserved">def</span> <span class="function">initialize</span>(name)
272
<span class="line-numbers"> 4</span>     <span class="instance-variable">@name</span> = name.capitalize
273
<span class="line-numbers"> 5</span>   <span class="reserved">end</span>
274
<span class="line-numbers"> 6</span> 
275
<span class="line-numbers"> 7</span>   <span class="reserved">def</span> <span class="function">salute</span>
276
<span class="line-numbers"> 8</span>     puts <span class="string"><span class="delimiter">"</span><span class="content">Hello </span><span class="inline"><span class="inline-delimiter">#{</span><span class="instance-variable">@name</span><span class="inline-delimiter">}</span></span><span class="content">!</span><span class="delimiter">"</span></span> 
277
<span class="line-numbers"> 9</span>   <span class="reserved">end</span>
278
<span class="line-numbers"><strong>10</strong></span> <span class="reserved">end</span></code>
279
</pre>
280
</body>
281
</html>
.svn/pristine/ba/ba4ceab8adc1717a11b6033a44e49578fa2b57be.svn-base
1
<% if @membership.valid? %>
2
  $('#tab-content-memberships').html('<%= escape_javascript(render :partial => 'users/memberships') %>');
3
  $("#member-<%= @membership.id %>").effect("highlight");
4
<% else %>
5
  alert('<%= raw(escape_javascript(l(:notice_failed_to_save_members, :errors => @membership.errors.full_messages.join(', ')))) %>');
6
<% end %>
.svn/pristine/ba/ba5d4789df17479bc2d584f1eb52a1d2b9bef079.svn-base
1
<% if defined?(container) && container && container.saved_attachments %>
2
  <% container.saved_attachments.each_with_index do |attachment, i| %>
3
    <span class="icon icon-attachment" style="display:block; line-height:1.5em;">
4
      <%= h(attachment.filename) %> (<%= number_to_human_size(attachment.filesize) %>)
5
      <%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.id}.#{attachment.digest}" %>
6
    </span>
7
  <% end %>
8
<% end %>
9
<span id="attachments_fields">
10
  <span>
11
    <%= file_field_tag 'attachments[1][file]', :id => nil, :class => 'file',
12
          :onchange => "checkFileSize(this, #{Setting.attachment_max_size.to_i.kilobytes}, '#{escape_javascript(l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)))}');"  -%>
13
    <%= text_field_tag 'attachments[1][description]', '', :id => nil, :class => 'description', :maxlength => 255, :placeholder => l(:label_optional_description) %>
14
    <%= link_to_function(image_tag('delete.png'), 'removeFileField(this)', :title => (l(:button_delete))) %>
15
  </span>
16
</span>
17
<span class="add_attachment"><%= link_to l(:label_add_another_file), '#', :onclick => 'addFileField(); return false;', :class => 'add_attachment' %>
18
(<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>)</span>
.svn/pristine/ba/ba82ac49cd0b917153196af22d8861848a66361d.svn-base
1
$("#journal-<%= @journal.id %>-notes").hide();
2

  
3
if ($("form#journal-<%= @journal.id %>-form").length > 0) {
4
  // journal edit form already loaded
5
  $("#journal-<%= @journal.id %>-form").show();
6
} else {
7
  $("#journal-<%= @journal.id %>-notes").after('<%= escape_javascript(render :partial => 'notes_form') %>');
8
}
.svn/pristine/ba/bae5f43e87eacd9d199692aa578d1d741f75b33e.svn-base
1
# Redmine - project management software
2
# Copyright (C) 2006-2012  Jean-Philippe Lang
3
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the GNU General Public License
6
# as published by the Free Software Foundation; either version 2
7
# of the License, or (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17

  
18
require File.expand_path('../../test_helper', __FILE__)
19
require 'trackers_controller'
20

  
21
# Re-raise errors caught by the controller.
22
class TrackersController; def rescue_action(e) raise e end; end
23

  
24
class TrackersControllerTest < ActionController::TestCase
25
  fixtures :trackers, :projects, :projects_trackers, :users, :issues, :custom_fields
26

  
27
  def setup
28
    @controller = TrackersController.new
29
    @request    = ActionController::TestRequest.new
30
    @response   = ActionController::TestResponse.new
31
    User.current = nil
32
    @request.session[:user_id] = 1 # admin
33
  end
34

  
35
  def test_index
36
    get :index
37
    assert_response :success
38
    assert_template 'index'
39
  end
40
  
41
  def test_index_by_anonymous_should_redirect_to_login_form
42
    @request.session[:user_id] = nil
43
    get :index
44
    assert_redirected_to '/login?back_url=http%3A%2F%2Ftest.host%2Ftrackers'
45
  end
46
  
47
  def test_index_by_user_should_respond_with_406
48
    @request.session[:user_id] = 2
49
    get :index
50
    assert_response 406
51
  end
52

  
53
  def test_new
54
    get :new
55
    assert_response :success
56
    assert_template 'new'
57
  end
58

  
59
  def test_create
60
    assert_difference 'Tracker.count' do
61
      post :create, :tracker => { :name => 'New tracker', :project_ids => ['1', '', ''], :custom_field_ids => ['1', '6', ''] }
62
    end
63
    assert_redirected_to :action => 'index'
64
    tracker = Tracker.first(:order => 'id DESC')
65
    assert_equal 'New tracker', tracker.name
66
    assert_equal [1], tracker.project_ids.sort
67
    assert_equal Tracker::CORE_FIELDS, tracker.core_fields
68
    assert_equal [1, 6], tracker.custom_field_ids.sort
69
    assert_equal 0, tracker.workflow_rules.count
70
  end
71

  
72
  def create_with_disabled_core_fields
73
    assert_difference 'Tracker.count' do
74
      post :create, :tracker => { :name => 'New tracker', :core_fields => ['assigned_to_id', 'fixed_version_id', ''] }
75
    end
76
    assert_redirected_to :action => 'index'
77
    tracker = Tracker.first(:order => 'id DESC')
78
    assert_equal 'New tracker', tracker.name
79
    assert_equal %w(assigned_to_id fixed_version_id), tracker.core_fields
80
  end
81

  
82
  def test_create_new_with_workflow_copy
83
    assert_difference 'Tracker.count' do
84
      post :create, :tracker => { :name => 'New tracker' }, :copy_workflow_from => 1
85
    end
86
    assert_redirected_to :action => 'index'
87
    tracker = Tracker.find_by_name('New tracker')
88
    assert_equal 0, tracker.projects.count
89
    assert_equal Tracker.find(1).workflow_rules.count, tracker.workflow_rules.count
90
  end
91

  
92
  def test_create_with_failure
93
    assert_no_difference 'Tracker.count' do
94
      post :create, :tracker => { :name => '', :project_ids => ['1', '', ''], :custom_field_ids => ['1', '6', ''] }
95
    end
96
    assert_response :success
97
    assert_template 'new'
98
    assert_error_tag :content => /name can&#x27;t be blank/i
99
  end
100

  
101
  def test_edit
102
    Tracker.find(1).project_ids = [1, 3]
103

  
104
    get :edit, :id => 1
105
    assert_response :success
106
    assert_template 'edit'
107

  
108
    assert_tag :input, :attributes => { :name => 'tracker[project_ids][]',
109
                                        :value => '1',
110
                                        :checked => 'checked' }
111

  
112
    assert_tag :input, :attributes => { :name => 'tracker[project_ids][]',
113
                                        :value => '2',
114
                                        :checked => nil }
115

  
116
    assert_tag :input, :attributes => { :name => 'tracker[project_ids][]',
117
                                        :value => '',
118
                                        :type => 'hidden'}
119
  end
120

  
121
  def test_edit_should_check_core_fields
122
    tracker = Tracker.find(1)
123
    tracker.core_fields = %w(assigned_to_id fixed_version_id)
124
    tracker.save!
125

  
126
    get :edit, :id => 1
127
    assert_response :success
128
    assert_template 'edit'
129

  
130
    assert_select 'input[name=?][value=assigned_to_id][checked=checked]', 'tracker[core_fields][]'
131
    assert_select 'input[name=?][value=fixed_version_id][checked=checked]', 'tracker[core_fields][]'
132

  
133
    assert_select 'input[name=?][value=category_id]', 'tracker[core_fields][]'
134
    assert_select 'input[name=?][value=category_id][checked=checked]', 'tracker[core_fields][]', 0
135

  
136
    assert_select 'input[name=?][value=][type=hidden]', 'tracker[core_fields][]'
137
  end
138

  
139
  def test_update
140
    put :update, :id => 1, :tracker => { :name => 'Renamed',
141
                                        :project_ids => ['1', '2', ''] }
142
    assert_redirected_to :action => 'index'
143
    assert_equal [1, 2], Tracker.find(1).project_ids.sort
144
  end
145

  
146
  def test_update_without_projects
147
    put :update, :id => 1, :tracker => { :name => 'Renamed',
148
                                        :project_ids => [''] }
149
    assert_redirected_to :action => 'index'
150
    assert Tracker.find(1).project_ids.empty?
151
  end
152

  
153
  def test_update_without_core_fields
154
    put :update, :id => 1, :tracker => { :name => 'Renamed', :core_fields => [''] }
155
    assert_redirected_to :action => 'index'
156
    assert Tracker.find(1).core_fields.empty?
157
  end
158

  
159
  def test_update_with_failure
160
    put :update, :id => 1, :tracker => { :name => '' }
161
    assert_response :success
162
    assert_template 'edit'
163
    assert_error_tag :content => /name can&#x27;t be blank/i
164
  end
165

  
166
  def test_move_lower
167
   tracker = Tracker.find_by_position(1)
168
   put :update, :id => 1, :tracker => { :move_to => 'lower' }
169
   assert_equal 2, tracker.reload.position
170
  end
171

  
172
  def test_destroy
173
    tracker = Tracker.create!(:name => 'Destroyable')
174
    assert_difference 'Tracker.count', -1 do
175
      delete :destroy, :id => tracker.id
176
    end
177
    assert_redirected_to :action => 'index'
178
    assert_nil flash[:error]
179
  end
180

  
181
  def test_destroy_tracker_in_use
182
    assert_no_difference 'Tracker.count' do
183
      delete :destroy, :id => 1
184
    end
185
    assert_redirected_to :action => 'index'
186
    assert_not_nil flash[:error]
187
  end
188

  
189
  def test_get_fields
190
    get :fields
191
    assert_response :success
192
    assert_template 'fields'
193

  
194
    assert_select 'form' do
195
      assert_select 'input[type=checkbox][name=?][value=assigned_to_id]', 'trackers[1][core_fields][]'
196
      assert_select 'input[type=checkbox][name=?][value=2]', 'trackers[1][custom_field_ids][]'
197

  
198
      assert_select 'input[type=hidden][name=?][value=]', 'trackers[1][core_fields][]'
199
      assert_select 'input[type=hidden][name=?][value=]', 'trackers[1][custom_field_ids][]'
200
    end
201
  end
202

  
203
  def test_post_fields
204
    post :fields, :trackers => {
205
      '1' => {'core_fields' => ['assigned_to_id', 'due_date', ''], 'custom_field_ids' => ['1', '2']},
206
      '2' => {'core_fields' => [''], 'custom_field_ids' => ['']}
207
    }
208
    assert_redirected_to '/trackers/fields'
209

  
210
    tracker = Tracker.find(1)
211
    assert_equal %w(assigned_to_id due_date), tracker.core_fields
212
    assert_equal [1, 2], tracker.custom_field_ids.sort
213

  
214
    tracker = Tracker.find(2)
215
    assert_equal [], tracker.core_fields
216
    assert_equal [], tracker.custom_field_ids.sort
217
  end
218
end

Also available in: Unified diff