summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-09-20 14:06:57 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-09-20 14:06:57 +0000
commit21e18c1eb4ac6a882c57ee3df2225851da23a57f (patch)
tree8889e4351130e1528ebb6bef07538c71f70d826f /test
parent52a6b0a21e5e28da4ed590383ae778c306cfaf1b (diff)
downloadredmine-21e18c1eb4ac6a882c57ee3df2225851da23a57f.tar.gz
redmine-21e18c1eb4ac6a882c57ee3df2225851da23a57f.zip
Adds missing native eol properties.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2895 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r--test/fixtures/attachments.yml246
-rw-r--r--test/fixtures/auth_sources.yml4
-rw-r--r--test/fixtures/boards.yml38
-rw-r--r--test/fixtures/changes.yml44
-rw-r--r--test/fixtures/changesets.yml166
-rw-r--r--test/fixtures/custom_fields.yml178
-rw-r--r--test/fixtures/custom_fields_projects.yml4
-rw-r--r--test/fixtures/custom_fields_trackers.yml38
-rw-r--r--test/fixtures/custom_values.yml170
-rw-r--r--test/fixtures/documents.yml12
-rw-r--r--test/fixtures/enumerations.yml138
-rw-r--r--test/fixtures/issue_categories.yml42
-rw-r--r--test/fixtures/issue_statuses.yml62
-rw-r--r--test/fixtures/issues.yml318
-rw-r--r--test/fixtures/journal_details.yml30
-rw-r--r--test/fixtures/journals.yml44
-rw-r--r--test/fixtures/members.yml88
-rw-r--r--test/fixtures/messages.yml136
-rw-r--r--test/fixtures/news.yml44
-rw-r--r--test/fixtures/projects.yml146
-rw-r--r--test/fixtures/queries.yml272
-rw-r--r--test/fixtures/repositories.yml34
-rw-r--r--test/fixtures/roles.yml352
-rw-r--r--test/fixtures/time_entries.yml114
-rw-r--r--test/fixtures/tokens.yml26
-rw-r--r--test/fixtures/trackers.yml32
-rw-r--r--test/fixtures/users.yml310
-rw-r--r--test/fixtures/versions.yml50
-rw-r--r--test/fixtures/wiki_content_versions.yml108
-rw-r--r--test/fixtures/wiki_contents.yml144
-rw-r--r--test/fixtures/wiki_pages.yml86
-rw-r--r--test/fixtures/wikis.yml22
-rw-r--r--test/fixtures/workflows.yml3230
-rw-r--r--test/functional/custom_fields_controller_test.rb122
-rw-r--r--test/functional/projects_controller_test.rb1154
-rw-r--r--test/unit/helpers/sort_helper_test.rb170
-rw-r--r--test/unit/member_test.rb38
-rw-r--r--test/unit/project_test.rb706
-rw-r--r--test/unit/repository_test.rb8
-rw-r--r--test/unit/user_test.rb446
-rw-r--r--test/unit/wiki_page_test.rb8
-rw-r--r--test/unit/wiki_test.rb10
42 files changed, 4698 insertions, 4692 deletions
diff --git a/test/fixtures/attachments.yml b/test/fixtures/attachments.yml
index 94c118f9e..62d5b38a1 100644
--- a/test/fixtures/attachments.yml
+++ b/test/fixtures/attachments.yml
@@ -1,124 +1,124 @@
----
-attachments_001:
- created_on: 2006-07-19 21:07:27 +02:00
- downloads: 0
- content_type: text/plain
- disk_filename: 060719210727_error281.txt
- container_id: 3
- digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
- id: 1
- container_type: Issue
- filesize: 28
- filename: error281.txt
- author_id: 2
-attachments_002:
- created_on: 2006-07-19 21:07:27 +02:00
- downloads: 0
- content_type: text/plain
- disk_filename: 060719210727_document.txt
- container_id: 1
- digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
- id: 2
- container_type: Document
- filesize: 28
- filename: document.txt
- author_id: 2
-attachments_003:
- created_on: 2006-07-19 21:07:27 +02:00
- downloads: 0
- content_type: image/gif
- disk_filename: 060719210727_logo.gif
- container_id: 4
- digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
- id: 3
- container_type: WikiPage
- filesize: 280
- filename: logo.gif
- description: This is a logo
- author_id: 2
-attachments_004:
- created_on: 2006-07-19 21:07:27 +02:00
- container_type: Issue
- container_id: 3
- downloads: 0
- disk_filename: 060719210727_source.rb
- digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
- id: 4
- filesize: 153
- filename: source.rb
- author_id: 2
- description: This is a Ruby source file
- content_type: application/x-ruby
-attachments_005:
- created_on: 2006-07-19 21:07:27 +02:00
- container_type: Issue
- container_id: 3
- downloads: 0
- disk_filename: 060719210727_changeset.diff
- digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
- id: 5
- filesize: 687
- filename: changeset.diff
- author_id: 2
- content_type: text/x-diff
-attachments_006:
- created_on: 2006-07-19 21:07:27 +02:00
- container_type: Issue
- container_id: 3
- downloads: 0
- disk_filename: 060719210727_archive.zip
- digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
- id: 6
- filesize: 157
- filename: archive.zip
- author_id: 2
- content_type: application/octet-stream
-attachments_007:
- created_on: 2006-07-19 21:07:27 +02:00
- container_type: Issue
- container_id: 4
- downloads: 0
- disk_filename: 060719210727_archive.zip
- digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
- id: 7
- filesize: 157
- filename: archive.zip
- author_id: 1
- content_type: application/octet-stream
-attachments_008:
- created_on: 2006-07-19 21:07:27 +02:00
- container_type: Project
- container_id: 1
- downloads: 0
- disk_filename: 060719210727_project_file.zip
- digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
- id: 8
- filesize: 320
- filename: project_file.zip
- author_id: 2
- content_type: application/octet-stream
-attachments_009:
- created_on: 2006-07-19 21:07:27 +02:00
- container_type: Version
- container_id: 1
- downloads: 0
- disk_filename: 060719210727_version_file.zip
- digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
- id: 9
- filesize: 452
- filename: version_file.zip
- author_id: 2
- content_type: application/octet-stream
-attachments_010:
- created_on: 2006-07-19 21:07:27 +02:00
- container_type: Issue
- container_id: 2
- downloads: 0
- disk_filename: 060719210727_picture.jpg
- digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
- id: 10
- filesize: 452
- filename: picture.jpg
- author_id: 2
- content_type: image/jpeg
+---
+attachments_001:
+ created_on: 2006-07-19 21:07:27 +02:00
+ downloads: 0
+ content_type: text/plain
+ disk_filename: 060719210727_error281.txt
+ container_id: 3
+ digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+ id: 1
+ container_type: Issue
+ filesize: 28
+ filename: error281.txt
+ author_id: 2
+attachments_002:
+ created_on: 2006-07-19 21:07:27 +02:00
+ downloads: 0
+ content_type: text/plain
+ disk_filename: 060719210727_document.txt
+ container_id: 1
+ digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+ id: 2
+ container_type: Document
+ filesize: 28
+ filename: document.txt
+ author_id: 2
+attachments_003:
+ created_on: 2006-07-19 21:07:27 +02:00
+ downloads: 0
+ content_type: image/gif
+ disk_filename: 060719210727_logo.gif
+ container_id: 4
+ digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+ id: 3
+ container_type: WikiPage
+ filesize: 280
+ filename: logo.gif
+ description: This is a logo
+ author_id: 2
+attachments_004:
+ created_on: 2006-07-19 21:07:27 +02:00
+ container_type: Issue
+ container_id: 3
+ downloads: 0
+ disk_filename: 060719210727_source.rb
+ digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+ id: 4
+ filesize: 153
+ filename: source.rb
+ author_id: 2
+ description: This is a Ruby source file
+ content_type: application/x-ruby
+attachments_005:
+ created_on: 2006-07-19 21:07:27 +02:00
+ container_type: Issue
+ container_id: 3
+ downloads: 0
+ disk_filename: 060719210727_changeset.diff
+ digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+ id: 5
+ filesize: 687
+ filename: changeset.diff
+ author_id: 2
+ content_type: text/x-diff
+attachments_006:
+ created_on: 2006-07-19 21:07:27 +02:00
+ container_type: Issue
+ container_id: 3
+ downloads: 0
+ disk_filename: 060719210727_archive.zip
+ digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+ id: 6
+ filesize: 157
+ filename: archive.zip
+ author_id: 2
+ content_type: application/octet-stream
+attachments_007:
+ created_on: 2006-07-19 21:07:27 +02:00
+ container_type: Issue
+ container_id: 4
+ downloads: 0
+ disk_filename: 060719210727_archive.zip
+ digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+ id: 7
+ filesize: 157
+ filename: archive.zip
+ author_id: 1
+ content_type: application/octet-stream
+attachments_008:
+ created_on: 2006-07-19 21:07:27 +02:00
+ container_type: Project
+ container_id: 1
+ downloads: 0
+ disk_filename: 060719210727_project_file.zip
+ digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+ id: 8
+ filesize: 320
+ filename: project_file.zip
+ author_id: 2
+ content_type: application/octet-stream
+attachments_009:
+ created_on: 2006-07-19 21:07:27 +02:00
+ container_type: Version
+ container_id: 1
+ downloads: 0
+ disk_filename: 060719210727_version_file.zip
+ digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+ id: 9
+ filesize: 452
+ filename: version_file.zip
+ author_id: 2
+ content_type: application/octet-stream
+attachments_010:
+ created_on: 2006-07-19 21:07:27 +02:00
+ container_type: Issue
+ container_id: 2
+ downloads: 0
+ disk_filename: 060719210727_picture.jpg
+ digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+ id: 10
+ filesize: 452
+ filename: picture.jpg
+ author_id: 2
+ content_type: image/jpeg
\ No newline at end of file
diff --git a/test/fixtures/auth_sources.yml b/test/fixtures/auth_sources.yml
index 086c00f62..20670d5f5 100644
--- a/test/fixtures/auth_sources.yml
+++ b/test/fixtures/auth_sources.yml
@@ -1,2 +1,2 @@
---- {}
-
+--- {}
+
diff --git a/test/fixtures/boards.yml b/test/fixtures/boards.yml
index a4795c21e..0d6135875 100644
--- a/test/fixtures/boards.yml
+++ b/test/fixtures/boards.yml
@@ -1,19 +1,19 @@
----
-boards_001:
- name: Help
- project_id: 1
- topics_count: 2
- id: 1
- description: Help board
- position: 1
- last_message_id: 6
- messages_count: 6
-boards_002:
- name: Discussion
- project_id: 1
- topics_count: 0
- id: 2
- description: Discussion board
- position: 2
- last_message_id:
- messages_count: 0
+---
+boards_001:
+ name: Help
+ project_id: 1
+ topics_count: 2
+ id: 1
+ description: Help board
+ position: 1
+ last_message_id: 6
+ messages_count: 6
+boards_002:
+ name: Discussion
+ project_id: 1
+ topics_count: 0
+ id: 2
+ description: Discussion board
+ position: 2
+ last_message_id:
+ messages_count: 0
diff --git a/test/fixtures/changes.yml b/test/fixtures/changes.yml
index 56d936296..ae606f2b7 100644
--- a/test/fixtures/changes.yml
+++ b/test/fixtures/changes.yml
@@ -1,23 +1,23 @@
----
-changes_001:
- id: 1
- changeset_id: 100
- action: A
- path: /test/some/path/in/the/repo
- from_path:
- from_revision:
-changes_002:
- id: 2
- changeset_id: 100
- action: A
- path: /test/some/path/elsewhere/in/the/repo
- from_path:
- from_revision:
-changes_003:
- id: 3
- changeset_id: 101
- action: M
- path: /test/some/path/in/the/repo
- from_path:
- from_revision:
+---
+changes_001:
+ id: 1
+ changeset_id: 100
+ action: A
+ path: /test/some/path/in/the/repo
+ from_path:
+ from_revision:
+changes_002:
+ id: 2
+ changeset_id: 100
+ action: A
+ path: /test/some/path/elsewhere/in/the/repo
+ from_path:
+ from_revision:
+changes_003:
+ id: 3
+ changeset_id: 101
+ action: M
+ path: /test/some/path/in/the/repo
+ from_path:
+ from_revision:
\ No newline at end of file
diff --git a/test/fixtures/changesets.yml b/test/fixtures/changesets.yml
index 6c13d37e5..3eda7c52f 100644
--- a/test/fixtures/changesets.yml
+++ b/test/fixtures/changesets.yml
@@ -1,84 +1,84 @@
----
-changesets_001:
- commit_date: 2007-04-11
- committed_on: 2007-04-11 15:14:44 +02:00
- revision: 1
- id: 100
- comments: My very first commit
- repository_id: 10
- committer: dlopper
- user_id: 3
-changesets_002:
- commit_date: 2007-04-12
- committed_on: 2007-04-12 15:14:44 +02:00
- revision: 2
- id: 101
- comments: 'This commit fixes #1, #2 and references #1 & #3'
- repository_id: 10
- committer: dlopper
- user_id: 3
-changesets_003:
- commit_date: 2007-04-12
- committed_on: 2007-04-12 15:14:44 +02:00
- revision: 3
- id: 102
- comments: |-
- A commit with wrong issue ids
- IssueID 666 3
- repository_id: 10
- committer: dlopper
- user_id: 3
-changesets_004:
- commit_date: 2007-04-12
- committed_on: 2007-04-12 15:14:44 +02:00
- revision: 4
- id: 103
- comments: |-
- A commit with an issue id of an other project
- IssueID 4 2
- repository_id: 10
- committer: dlopper
- user_id: 3
-changesets_005:
- commit_date: "2007-09-10"
- comments: Modified one file in the folder.
- committed_on: 2007-09-10 19:01:08
- revision: "5"
- id: 104
- scmid:
- user_id: 3
- repository_id: 10
- committer: dlopper
-changesets_006:
- commit_date: "2007-09-10"
- comments: Moved helloworld.rb from / to /folder.
- committed_on: 2007-09-10 19:01:47
- revision: "6"
- id: 105
- scmid:
- user_id: 3
- repository_id: 10
- committer: dlopper
-changesets_007:
- commit_date: "2007-09-10"
- comments: Removed one file.
- committed_on: 2007-09-10 19:02:16
- revision: "7"
- id: 106
- scmid:
- user_id: 3
- repository_id: 10
- committer: dlopper
-changesets_008:
- commit_date: "2007-09-10"
- comments: |-
- This commits references an issue.
- Refs #2
- committed_on: 2007-09-10 19:04:35
- revision: "8"
- id: 107
- scmid:
- user_id: 3
- repository_id: 10
- committer: dlopper
+---
+changesets_001:
+ commit_date: 2007-04-11
+ committed_on: 2007-04-11 15:14:44 +02:00
+ revision: 1
+ id: 100
+ comments: My very first commit
+ repository_id: 10
+ committer: dlopper
+ user_id: 3
+changesets_002:
+ commit_date: 2007-04-12
+ committed_on: 2007-04-12 15:14:44 +02:00
+ revision: 2
+ id: 101
+ comments: 'This commit fixes #1, #2 and references #1 & #3'
+ repository_id: 10
+ committer: dlopper
+ user_id: 3
+changesets_003:
+ commit_date: 2007-04-12
+ committed_on: 2007-04-12 15:14:44 +02:00
+ revision: 3
+ id: 102
+ comments: |-
+ A commit with wrong issue ids
+ IssueID 666 3
+ repository_id: 10
+ committer: dlopper
+ user_id: 3
+changesets_004:
+ commit_date: 2007-04-12
+ committed_on: 2007-04-12 15:14:44 +02:00
+ revision: 4
+ id: 103
+ comments: |-
+ A commit with an issue id of an other project
+ IssueID 4 2
+ repository_id: 10
+ committer: dlopper
+ user_id: 3
+changesets_005:
+ commit_date: "2007-09-10"
+ comments: Modified one file in the folder.
+ committed_on: 2007-09-10 19:01:08
+ revision: "5"
+ id: 104
+ scmid:
+ user_id: 3
+ repository_id: 10
+ committer: dlopper
+changesets_006:
+ commit_date: "2007-09-10"
+ comments: Moved helloworld.rb from / to /folder.
+ committed_on: 2007-09-10 19:01:47
+ revision: "6"
+ id: 105
+ scmid:
+ user_id: 3
+ repository_id: 10
+ committer: dlopper
+changesets_007:
+ commit_date: "2007-09-10"
+ comments: Removed one file.
+ committed_on: 2007-09-10 19:02:16
+ revision: "7"
+ id: 106
+ scmid:
+ user_id: 3
+ repository_id: 10
+ committer: dlopper
+changesets_008:
+ commit_date: "2007-09-10"
+ comments: |-
+ This commits references an issue.
+ Refs #2
+ committed_on: 2007-09-10 19:04:35
+ revision: "8"
+ id: 107
+ scmid:
+ user_id: 3
+ repository_id: 10
+ committer: dlopper
\ No newline at end of file
diff --git a/test/fixtures/custom_fields.yml b/test/fixtures/custom_fields.yml
index a17827473..b4b58c4d4 100644
--- a/test/fixtures/custom_fields.yml
+++ b/test/fixtures/custom_fields.yml
@@ -1,90 +1,90 @@
----
-custom_fields_001:
- name: Database
- min_length: 0
- regexp: ""
- is_for_all: true
- is_filter: true
- type: IssueCustomField
- max_length: 0
- possible_values:
- - MySQL
- - PostgreSQL
- - Oracle
- id: 1
- is_required: false
- field_format: list
- default_value: ""
- editable: true
-custom_fields_002:
- name: Searchable field
- min_length: 1
- regexp: ""
- is_for_all: true
- type: IssueCustomField
- max_length: 100
- possible_values: ""
- id: 2
- is_required: false
- field_format: string
- searchable: true
- default_value: "Default string"
- editable: true
-custom_fields_003:
- name: Development status
- min_length: 0
- regexp: ""
- is_for_all: false
- is_filter: true
- type: ProjectCustomField
- max_length: 0
- possible_values:
- - Stable
- - Beta
- - Alpha
- - Planning
- id: 3
- is_required: true
- field_format: list
- default_value: ""
- editable: true
-custom_fields_004:
- name: Phone number
- min_length: 0
- regexp: ""
- is_for_all: false
- type: UserCustomField
- max_length: 0
- possible_values: ""
- id: 4
- is_required: false
- field_format: string
- default_value: ""
- editable: true
-custom_fields_005:
- name: Money
- min_length: 0
- regexp: ""
- is_for_all: false
- type: UserCustomField
- max_length: 0
- possible_values: ""
- id: 5
- is_required: false
- field_format: float
- default_value: ""
- editable: true
-custom_fields_006:
- name: Float field
- min_length: 0
- regexp: ""
- is_for_all: true
- type: IssueCustomField
- max_length: 0
- possible_values: ""
- id: 6
- is_required: false
- field_format: float
- default_value: ""
- editable: true
+---
+custom_fields_001:
+ name: Database
+ min_length: 0
+ regexp: ""
+ is_for_all: true
+ is_filter: true
+ type: IssueCustomField
+ max_length: 0
+ possible_values:
+ - MySQL
+ - PostgreSQL
+ - Oracle
+ id: 1
+ is_required: false
+ field_format: list
+ default_value: ""
+ editable: true
+custom_fields_002:
+ name: Searchable field
+ min_length: 1
+ regexp: ""
+ is_for_all: true
+ type: IssueCustomField
+ max_length: 100
+ possible_values: ""
+ id: 2
+ is_required: false
+ field_format: string
+ searchable: true
+ default_value: "Default string"
+ editable: true
+custom_fields_003:
+ name: Development status
+ min_length: 0
+ regexp: ""
+ is_for_all: false
+ is_filter: true
+ type: ProjectCustomField
+ max_length: 0
+ possible_values:
+ - Stable
+ - Beta
+ - Alpha
+ - Planning
+ id: 3
+ is_required: true
+ field_format: list
+ default_value: ""
+ editable: true
+custom_fields_004:
+ name: Phone number
+ min_length: 0
+ regexp: ""
+ is_for_all: false
+ type: UserCustomField
+ max_length: 0
+ possible_values: ""
+ id: 4
+ is_required: false
+ field_format: string
+ default_value: ""
+ editable: true
+custom_fields_005:
+ name: Money
+ min_length: 0
+ regexp: ""
+ is_for_all: false
+ type: UserCustomField
+ max_length: 0
+ possible_values: ""
+ id: 5
+ is_required: false
+ field_format: float
+ default_value: ""
+ editable: true
+custom_fields_006:
+ name: Float field
+ min_length: 0
+ regexp: ""
+ is_for_all: true
+ type: IssueCustomField
+ max_length: 0
+ possible_values: ""
+ id: 6
+ is_required: false
+ field_format: float
+ default_value: ""
+ editable: true
\ No newline at end of file
diff --git a/test/fixtures/custom_fields_projects.yml b/test/fixtures/custom_fields_projects.yml
index 086c00f62..20670d5f5 100644
--- a/test/fixtures/custom_fields_projects.yml
+++ b/test/fixtures/custom_fields_projects.yml
@@ -1,2 +1,2 @@
---- {}
-
+--- {}
+
diff --git a/test/fixtures/custom_fields_trackers.yml b/test/fixtures/custom_fields_trackers.yml
index bfbe0d24c..a356e4b85 100644
--- a/test/fixtures/custom_fields_trackers.yml
+++ b/test/fixtures/custom_fields_trackers.yml
@@ -1,19 +1,19 @@
----
-custom_fields_trackers_001:
- custom_field_id: 1
- tracker_id: 1
-custom_fields_trackers_002:
- custom_field_id: 2
- tracker_id: 1
-custom_fields_trackers_003:
- custom_field_id: 2
- tracker_id: 3
-custom_fields_trackers_004:
- custom_field_id: 6
- tracker_id: 1
-custom_fields_trackers_005:
- custom_field_id: 6
- tracker_id: 2
-custom_fields_trackers_006:
- custom_field_id: 6
- tracker_id: 3
+---
+custom_fields_trackers_001:
+ custom_field_id: 1
+ tracker_id: 1
+custom_fields_trackers_002:
+ custom_field_id: 2
+ tracker_id: 1
+custom_fields_trackers_003:
+ custom_field_id: 2
+ tracker_id: 3
+custom_fields_trackers_004:
+ custom_field_id: 6
+ tracker_id: 1
+custom_fields_trackers_005:
+ custom_field_id: 6
+ tracker_id: 2
+custom_fields_trackers_006:
+ custom_field_id: 6
+ tracker_id: 3
diff --git a/test/fixtures/custom_values.yml b/test/fixtures/custom_values.yml
index 0e2b454ab..4e3eee4f9 100644
--- a/test/fixtures/custom_values.yml
+++ b/test/fixtures/custom_values.yml
@@ -1,86 +1,86 @@
----
-custom_values_006:
- customized_type: Issue
- custom_field_id: 2
- customized_id: 3
- id: 6
- value: "125"
-custom_values_007:
- customized_type: Project
- custom_field_id: 3
- customized_id: 1
- id: 7
- value: Stable
-custom_values_001:
- customized_type: User
- custom_field_id: 4
- customized_id: 3
- id: 1
- value: ""
-custom_values_002:
- customized_type: User
- custom_field_id: 4
- customized_id: 4
- id: 2
- value: 01 23 45 67 89
-custom_values_003:
- customized_type: User
- custom_field_id: 4
- customized_id: 2
- id: 3
- value: ""
-custom_values_004:
- customized_type: Issue
- custom_field_id: 2
- customized_id: 1
- id: 4
- value: "125"
-custom_values_005:
- customized_type: Issue
- custom_field_id: 2
- customized_id: 2
- id: 5
- value: ""
-custom_values_008:
- customized_type: Issue
- custom_field_id: 1
- customized_id: 3
- id: 8
- value: "MySQL"
-custom_values_009:
- customized_type: Issue
- custom_field_id: 2
- customized_id: 3
- id: 9
- value: "this is a stringforcustomfield search"
-custom_values_010:
- customized_type: Issue
- custom_field_id: 6
- customized_id: 1
- id: 10
- value: "2.1"
-custom_values_011:
- customized_type: Issue
- custom_field_id: 6
- customized_id: 2
- id: 11
- value: "2.05"
-custom_values_012:
- customized_type: Issue
- custom_field_id: 6
- customized_id: 3
- id: 12
- value: "11.65"
-custom_values_013:
- customized_type: Issue
- custom_field_id: 6
- customized_id: 7
- id: 13
- value: ""
-custom_values_014:
- customized_type: Issue
- custom_field_id: 6
- customized_id: 5
- id: 14
- value: "-7.6"
+---
+custom_values_006:
+ customized_type: Issue
+ custom_field_id: 2
+ customized_id: 3
+ id: 6
+ value: "125"
+custom_values_007:
+ customized_type: Project
+ custom_field_id: 3
+ customized_id: 1
+ id: 7
+ value: Stable
+custom_values_001:
+ customized_type: User
+ custom_field_id: 4
+ customized_id: 3
+ id: 1
+ value: ""
+custom_values_002:
+ customized_type: User
+ custom_field_id: 4
+ customized_id: 4
+ id: 2
+ value: 01 23 45 67 89
+custom_values_003:
+ customized_type: User
+ custom_field_id: 4
+ customized_id: 2
+ id: 3
+ value: ""
+custom_values_004:
+ customized_type: Issue
+ custom_field_id: 2
+ customized_id: 1
+ id: 4
+ value: "125"
+custom_values_005:
+ customized_type: Issue
+ custom_field_id: 2
+ customized_id: 2
+ id: 5
+ value: ""
+custom_values_008:
+ customized_type: Issue
+ custom_field_id: 1
+ customized_id: 3
+ id: 8
+ value: "MySQL"
+custom_values_009:
+ customized_type: Issue
+ custom_field_id: 2
+ customized_id: 3
+ id: 9
+ value: "this is a stringforcustomfield search"
+custom_values_010:
+ customized_type: Issue
+ custom_field_id: 6
+ customized_id: 1
+ id: 10
+ value: "2.1"
+custom_values_011:
+ customized_type: Issue
+ custom_field_id: 6
+ customized_id: 2
+ id: 11
+ value: "2.05"
+custom_values_012:
+ customized_type: Issue
+ custom_field_id: 6
+ customized_id: 3
+ id: 12
+ value: "11.65"
+custom_values_013:
+ customized_type: Issue
+ custom_field_id: 6
+ customized_id: 7
+ id: 13
+ value: ""
+custom_values_014:
+ customized_type: Issue
+ custom_field_id: 6
+ customized_id: 5
+ id: 14
+ value: "-7.6"
\ No newline at end of file
diff --git a/test/fixtures/documents.yml b/test/fixtures/documents.yml
index 0dbca2a4f..137cbcc67 100644
--- a/test/fixtures/documents.yml
+++ b/test/fixtures/documents.yml
@@ -1,7 +1,7 @@
-documents_001:
- created_on: 2007-01-27 15:08:27 +01:00
- project_id: 1
- title: "Test document"
- id: 1
- description: "Document description"
+documents_001:
+ created_on: 2007-01-27 15:08:27 +01:00
+ project_id: 1
+ title: "Test document"
+ id: 1
+ description: "Document description"
category_id: 1 \ No newline at end of file
diff --git a/test/fixtures/enumerations.yml b/test/fixtures/enumerations.yml
index 6e7983e8a..c9d619e64 100644
--- a/test/fixtures/enumerations.yml
+++ b/test/fixtures/enumerations.yml
@@ -1,69 +1,69 @@
----
-enumerations_001:
- name: Uncategorized
- id: 1
- opt: DCAT
- type: DocumentCategory
-enumerations_002:
- name: User documentation
- id: 2
- opt: DCAT
- type: DocumentCategory
-enumerations_003:
- name: Technical documentation
- id: 3
- opt: DCAT
- type: DocumentCategory
-enumerations_004:
- name: Low
- id: 4
- opt: IPRI
- type: IssuePriority
-enumerations_005:
- name: Normal
- id: 5
- opt: IPRI
- type: IssuePriority
- is_default: true
-enumerations_006:
- name: High
- id: 6
- opt: IPRI
- type: IssuePriority
-enumerations_007:
- name: Urgent
- id: 7
- opt: IPRI
- type: IssuePriority
-enumerations_008:
- name: Immediate
- id: 8
- opt: IPRI
- type: IssuePriority
-enumerations_009:
- name: Design
- id: 9
- opt: ACTI
- type: TimeEntryActivity
-enumerations_010:
- name: Development
- id: 10
- opt: ACTI
- type: TimeEntryActivity
- is_default: true
-enumerations_011:
- name: QA
- id: 11
- opt: ACTI
- type: TimeEntryActivity
-enumerations_012:
- name: Default Enumeration
- id: 12
- opt: ''
- type: Enumeration
- is_default: true
-enumerations_013:
- name: Another Enumeration
- id: 13
- opt: ''
- type: Enumeration
+---
+enumerations_001:
+ name: Uncategorized
+ id: 1
+ opt: DCAT
+ type: DocumentCategory
+enumerations_002:
+ name: User documentation
+ id: 2
+ opt: DCAT
+ type: DocumentCategory
+enumerations_003:
+ name: Technical documentation
+ id: 3
+ opt: DCAT
+ type: DocumentCategory
+enumerations_004:
+ name: Low
+ id: 4
+ opt: IPRI
+ type: IssuePriority
+enumerations_005:
+ name: Normal
+ id: 5
+ opt: IPRI
+ type: IssuePriority
+ is_default: true
+enumerations_006:
+ name: High
+ id: 6
+ opt: IPRI
+ type: IssuePriority
+enumerations_007:
+ name: Urgent
+ id: 7
+ opt: IPRI
+ type: IssuePriority
+enumerations_008:
+ name: Immediate
+ id: 8
+ opt: IPRI
+ type: IssuePriority
+enumerations_009:
+ name: Design
+ id: 9
+ opt: ACTI
+ type: TimeEntryActivity
+enumerations_010:
+ name: Development
+ id: 10
+ opt: ACTI
+ type: TimeEntryActivity
+ is_default: true
+enumerations_011:
+ name: QA
+ id: 11
+ opt: ACTI
+ type: TimeEntryActivity
+enumerations_012:
+ name: Default Enumeration
+ id: 12
+ opt: ''
+ type: Enumeration
+ is_default: true
+enumerations_013:
+ name: Another Enumeration
+ id: 13
+ opt: ''
+ type: Enumeration
diff --git a/test/fixtures/issue_categories.yml b/test/fixtures/issue_categories.yml
index aa2f70351..bb68b5ff1 100644
--- a/test/fixtures/issue_categories.yml
+++ b/test/fixtures/issue_categories.yml
@@ -1,22 +1,22 @@
----
-issue_categories_001:
- name: Printing
- project_id: 1
- assigned_to_id: 2
- id: 1
-issue_categories_002:
- name: Recipes
- project_id: 1
- assigned_to_id:
- id: 2
-issue_categories_003:
- name: Stock management
- project_id: 2
- assigned_to_id:
- id: 3
-issue_categories_004:
- name: Printing
- project_id: 2
- assigned_to_id:
- id: 4
+---
+issue_categories_001:
+ name: Printing
+ project_id: 1
+ assigned_to_id: 2
+ id: 1
+issue_categories_002:
+ name: Recipes
+ project_id: 1
+ assigned_to_id:
+ id: 2
+issue_categories_003:
+ name: Stock management
+ project_id: 2
+ assigned_to_id:
+ id: 3
+issue_categories_004:
+ name: Printing
+ project_id: 2
+ assigned_to_id:
+ id: 4
\ No newline at end of file
diff --git a/test/fixtures/issue_statuses.yml b/test/fixtures/issue_statuses.yml
index c7b10ba07..098ac9619 100644
--- a/test/fixtures/issue_statuses.yml
+++ b/test/fixtures/issue_statuses.yml
@@ -1,31 +1,31 @@
----
-issue_statuses_006:
- name: Rejected
- is_default: false
- is_closed: true
- id: 6
-issue_statuses_001:
- name: New
- is_default: true
- is_closed: false
- id: 1
-issue_statuses_002:
- name: Assigned
- is_default: false
- is_closed: false
- id: 2
-issue_statuses_003:
- name: Resolved
- is_default: false
- is_closed: false
- id: 3
-issue_statuses_004:
- name: Feedback
- is_default: false
- is_closed: false
- id: 4
-issue_statuses_005:
- name: Closed
- is_default: false
- is_closed: true
- id: 5
+---
+issue_statuses_006:
+ name: Rejected
+ is_default: false
+ is_closed: true
+ id: 6
+issue_statuses_001:
+ name: New
+ is_default: true
+ is_closed: false
+ id: 1
+issue_statuses_002:
+ name: Assigned
+ is_default: false
+ is_closed: false
+ id: 2
+issue_statuses_003:
+ name: Resolved
+ is_default: false
+ is_closed: false
+ id: 3
+issue_statuses_004:
+ name: Feedback
+ is_default: false
+ is_closed: false
+ id: 4
+issue_statuses_005:
+ name: Closed
+ is_default: false
+ is_closed: true
+ id: 5
diff --git a/test/fixtures/issues.yml b/test/fixtures/issues.yml
index 8c8cfbdd6..f7917639b 100644
--- a/test/fixtures/issues.yml
+++ b/test/fixtures/issues.yml
@@ -1,159 +1,159 @@
----
-issues_001:
- created_on: <%= 3.days.ago.to_date.to_s(:db) %>
- project_id: 1
- updated_on: <%= 1.day.ago.to_date.to_s(:db) %>
- priority_id: 4
- subject: Can't print recipes
- id: 1
- fixed_version_id:
- category_id: 1
- description: Unable to print recipes
- tracker_id: 1
- assigned_to_id:
- author_id: 2
- status_id: 1
- start_date: <%= 1.day.ago.to_date.to_s(:db) %>
- due_date: <%= 10.day.from_now.to_date.to_s(:db) %>
-issues_002:
- created_on: 2006-07-19 21:04:21 +02:00
- project_id: 1
- updated_on: 2006-07-19 21:09:50 +02:00
- priority_id: 5
- subject: Add ingredients categories
- id: 2
- fixed_version_id: 2
- category_id:
- description: Ingredients of the recipe should be classified by categories
- tracker_id: 2
- assigned_to_id: 3
- author_id: 2
- status_id: 2
- start_date: <%= 2.day.ago.to_date.to_s(:db) %>
- due_date:
-issues_003:
- created_on: 2006-07-19 21:07:27 +02:00
- project_id: 1
- updated_on: 2006-07-19 21:07:27 +02:00
- priority_id: 4
- subject: Error 281 when updating a recipe
- id: 3
- fixed_version_id:
- category_id:
- description: Error 281 is encountered when saving a recipe
- tracker_id: 1
- assigned_to_id: 3
- author_id: 2
- status_id: 1
- start_date: <%= 1.day.from_now.to_date.to_s(:db) %>
- due_date: <%= 40.day.ago.to_date.to_s(:db) %>
-issues_004:
- created_on: <%= 5.days.ago.to_date.to_s(:db) %>
- project_id: 2
- updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
- priority_id: 4
- subject: Issue on project 2
- id: 4
- fixed_version_id:
- category_id:
- description: Issue on project 2
- tracker_id: 1
- assigned_to_id: 2
- author_id: 2
- status_id: 1
-issues_005:
- created_on: <%= 5.days.ago.to_date.to_s(:db) %>
- project_id: 3
- updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
- priority_id: 4
- subject: Subproject issue
- id: 5
- fixed_version_id:
- category_id:
- description: This is an issue on a cookbook subproject
- tracker_id: 1
- assigned_to_id:
- author_id: 2
- status_id: 1
-issues_006:
- created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
- project_id: 5
- updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
- priority_id: 4
- subject: Issue of a private subproject
- id: 6
- fixed_version_id:
- category_id:
- description: This is an issue of a private subproject of cookbook
- tracker_id: 1
- assigned_to_id:
- author_id: 2
- status_id: 1
- start_date: <%= Date.today.to_s(:db) %>
- due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
-issues_007:
- created_on: <%= 10.days.ago.to_date.to_s(:db) %>
- project_id: 1
- updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
- priority_id: 5
- subject: Issue due today
- id: 7
- fixed_version_id:
- category_id:
- description: This is an issue that is due today
- tracker_id: 1
- assigned_to_id:
- author_id: 2
- status_id: 1
- start_date: <%= 10.days.ago.to_s(:db) %>
- due_date: <%= Date.today.to_s(:db) %>
- lock_version: 0
-issues_008:
- created_on: <%= 10.days.ago.to_date.to_s(:db) %>
- project_id: 1
- updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
- priority_id: 5
- subject: Closed issue
- id: 8
- fixed_version_id:
- category_id:
- description: This is a closed issue.
- tracker_id: 1
- assigned_to_id:
- author_id: 2
- status_id: 5
- start_date:
- due_date:
- lock_version: 0
-issues_009:
- created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
- project_id: 5
- updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
- priority_id: 5
- subject: Blocked Issue
- id: 9
- fixed_version_id:
- category_id:
- description: This is an issue that is blocked by issue #10
- tracker_id: 1
- assigned_to_id:
- author_id: 2
- status_id: 1
- start_date: <%= Date.today.to_s(:db) %>
- due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
-issues_010:
- created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
- project_id: 5
- updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
- priority_id: 5
- subject: Issue Doing the Blocking
- id: 10
- fixed_version_id:
- category_id:
- description: This is an issue that blocks issue #9
- tracker_id: 1
- assigned_to_id:
- author_id: 2
- status_id: 1
- start_date: <%= Date.today.to_s(:db) %>
- due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
+---
+issues_001:
+ created_on: <%= 3.days.ago.to_date.to_s(:db) %>
+ project_id: 1
+ updated_on: <%= 1.day.ago.to_date.to_s(:db) %>
+ priority_id: 4
+ subject: Can't print recipes
+ id: 1
+ fixed_version_id:
+ category_id: 1
+ description: Unable to print recipes
+ tracker_id: 1
+ assigned_to_id:
+ author_id: 2
+ status_id: 1
+ start_date: <%= 1.day.ago.to_date.to_s(:db) %>
+ due_date: <%= 10.day.from_now.to_date.to_s(:db) %>
+issues_002:
+ created_on: 2006-07-19 21:04:21 +02:00
+ project_id: 1
+ updated_on: 2006-07-19 21:09:50 +02:00
+ priority_id: 5
+ subject: Add ingredients categories
+ id: 2
+ fixed_version_id: 2
+ category_id:
+ description: Ingredients of the recipe should be classified by categories
+ tracker_id: 2
+ assigned_to_id: 3
+ author_id: 2
+ status_id: 2
+ start_date: <%= 2.day.ago.to_date.to_s(:db) %>
+ due_date:
+issues_003:
+ created_on: 2006-07-19 21:07:27 +02:00
+ project_id: 1
+ updated_on: 2006-07-19 21:07:27 +02:00
+ priority_id: 4
+ subject: Error 281 when updating a recipe
+ id: 3
+ fixed_version_id:
+ category_id:
+ description: Error 281 is encountered when saving a recipe
+ tracker_id: 1
+ assigned_to_id: 3
+ author_id: 2
+ status_id: 1
+ start_date: <%= 1.day.from_now.to_date.to_s(:db) %>
+ due_date: <%= 40.day.ago.to_date.to_s(:db) %>
+issues_004:
+ created_on: <%= 5.days.ago.to_date.to_s(:db) %>
+ project_id: 2
+ updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
+ priority_id: 4
+ subject: Issue on project 2
+ id: 4
+ fixed_version_id:
+ category_id:
+ description: Issue on project 2
+ tracker_id: 1
+ assigned_to_id: 2
+ author_id: 2
+ status_id: 1
+issues_005:
+ created_on: <%= 5.days.ago.to_date.to_s(:db) %>
+ project_id: 3
+ updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
+ priority_id: 4
+ subject: Subproject issue
+ id: 5
+ fixed_version_id:
+ category_id:
+ description: This is an issue on a cookbook subproject
+ tracker_id: 1
+ assigned_to_id:
+ author_id: 2
+ status_id: 1
+issues_006:
+ created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
+ project_id: 5
+ updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
+ priority_id: 4
+ subject: Issue of a private subproject
+ id: 6
+ fixed_version_id:
+ category_id:
+ description: This is an issue of a private subproject of cookbook
+ tracker_id: 1
+ assigned_to_id:
+ author_id: 2
+ status_id: 1
+ start_date: <%= Date.today.to_s(:db) %>
+ due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
+issues_007:
+ created_on: <%= 10.days.ago.to_date.to_s(:db) %>
+ project_id: 1
+ updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
+ priority_id: 5
+ subject: Issue due today
+ id: 7
+ fixed_version_id:
+ category_id:
+ description: This is an issue that is due today
+ tracker_id: 1
+ assigned_to_id:
+ author_id: 2
+ status_id: 1
+ start_date: <%= 10.days.ago.to_s(:db) %>
+ due_date: <%= Date.today.to_s(:db) %>
+ lock_version: 0
+issues_008:
+ created_on: <%= 10.days.ago.to_date.to_s(:db) %>
+ project_id: 1
+ updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
+ priority_id: 5
+ subject: Closed issue
+ id: 8
+ fixed_version_id:
+ category_id:
+ description: This is a closed issue.
+ tracker_id: 1
+ assigned_to_id:
+ author_id: 2
+ status_id: 5
+ start_date:
+ due_date:
+ lock_version: 0
+issues_009:
+ created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
+ project_id: 5
+ updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
+ priority_id: 5
+ subject: Blocked Issue
+ id: 9
+ fixed_version_id:
+ category_id:
+ description: This is an issue that is blocked by issue #10
+ tracker_id: 1
+ assigned_to_id:
+ author_id: 2
+ status_id: 1
+ start_date: <%= Date.today.to_s(:db) %>
+ due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
+issues_010:
+ created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
+ project_id: 5
+ updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
+ priority_id: 5
+ subject: Issue Doing the Blocking
+ id: 10
+ fixed_version_id:
+ category_id:
+ description: This is an issue that blocks issue #9
+ tracker_id: 1
+ assigned_to_id:
+ author_id: 2
+ status_id: 1
+ start_date: <%= Date.today.to_s(:db) %>
+ due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
diff --git a/test/fixtures/journal_details.yml b/test/fixtures/journal_details.yml
index 058abd112..38e6bf137 100644
--- a/test/fixtures/journal_details.yml
+++ b/test/fixtures/journal_details.yml
@@ -1,15 +1,15 @@
----
-journal_details_001:
- old_value: "1"
- property: attr
- id: 1
- value: "2"
- prop_key: status_id
- journal_id: 1
-journal_details_002:
- old_value: "40"
- property: attr
- id: 2
- value: "30"
- prop_key: done_ratio
- journal_id: 1
+---
+journal_details_001:
+ old_value: "1"
+ property: attr
+ id: 1
+ value: "2"
+ prop_key: status_id
+ journal_id: 1
+journal_details_002:
+ old_value: "40"
+ property: attr
+ id: 2
+ value: "30"
+ prop_key: done_ratio
+ journal_id: 1
diff --git a/test/fixtures/journals.yml b/test/fixtures/journals.yml
index 3ee66ae6b..5c0b70253 100644
--- a/test/fixtures/journals.yml
+++ b/test/fixtures/journals.yml
@@ -1,23 +1,23 @@
----
-journals_001:
- created_on: <%= 2.days.ago.to_date.to_s(:db) %>
- notes: "Journal notes"
- id: 1
- journalized_type: Issue
- user_id: 1
- journalized_id: 1
-journals_002:
- created_on: <%= 1.days.ago.to_date.to_s(:db) %>
- notes: "Some notes with Redmine links: #2, r2."
- id: 2
- journalized_type: Issue
- user_id: 2
- journalized_id: 1
-journals_003:
- created_on: <%= 1.days.ago.to_date.to_s(:db) %>
- notes: "A comment with inline image: !picture.jpg!"
- id: 3
- journalized_type: Issue
- user_id: 2
- journalized_id: 2
+---
+journals_001:
+ created_on: <%= 2.days.ago.to_date.to_s(:db) %>
+ notes: "Journal notes"
+ id: 1
+ journalized_type: Issue
+ user_id: 1
+ journalized_id: 1
+journals_002:
+ created_on: <%= 1.days.ago.to_date.to_s(:db) %>
+ notes: "Some notes with Redmine links: #2, r2."
+ id: 2
+ journalized_type: Issue
+ user_id: 2
+ journalized_id: 1
+journals_003:
+ created_on: <%= 1.days.ago.to_date.to_s(:db) %>
+ notes: "A comment with inline image: !picture.jpg!"
+ id: 3
+ journalized_type: Issue
+ user_id: 2
+ journalized_id: 2
\ No newline at end of file
diff --git a/test/fixtures/members.yml b/test/fixtures/members.yml
index 3fd785b9a..65e3fd687 100644
--- a/test/fixtures/members.yml
+++ b/test/fixtures/members.yml
@@ -1,45 +1,45 @@
----
-members_001:
- created_on: 2006-07-19 19:35:33 +02:00
- project_id: 1
- id: 1
- user_id: 2
- mail_notification: true
-members_002:
- created_on: 2006-07-19 19:35:36 +02:00
- project_id: 1
- id: 2
- user_id: 3
- mail_notification: true
-members_003:
- created_on: 2006-07-19 19:35:36 +02:00
- project_id: 2
- id: 3
- user_id: 2
- mail_notification: true
-members_004:
- id: 4
- created_on: 2006-07-19 19:35:36 +02:00
- project_id: 1
- # Locked user
- user_id: 5
- mail_notification: true
-members_005:
- id: 5
- created_on: 2006-07-19 19:35:33 +02:00
- project_id: 5
- user_id: 2
- mail_notification: true
-members_006:
- id: 6
- created_on: 2006-07-19 19:35:33 +02:00
- project_id: 5
- user_id: 10
- mail_notification: false
-members_007:
- id: 7
- created_on: 2006-07-19 19:35:33 +02:00
- project_id: 5
- user_id: 8
- mail_notification: false
+---
+members_001:
+ created_on: 2006-07-19 19:35:33 +02:00
+ project_id: 1
+ id: 1
+ user_id: 2
+ mail_notification: true
+members_002:
+ created_on: 2006-07-19 19:35:36 +02:00
+ project_id: 1
+ id: 2
+ user_id: 3
+ mail_notification: true
+members_003:
+ created_on: 2006-07-19 19:35:36 +02:00
+ project_id: 2
+ id: 3
+ user_id: 2
+ mail_notification: true
+members_004:
+ id: 4
+ created_on: 2006-07-19 19:35:36 +02:00
+ project_id: 1
+ # Locked user
+ user_id: 5
+ mail_notification: true
+members_005:
+ id: 5
+ created_on: 2006-07-19 19:35:33 +02:00
+ project_id: 5
+ user_id: 2
+ mail_notification: true
+members_006:
+ id: 6
+ created_on: 2006-07-19 19:35:33 +02:00
+ project_id: 5
+ user_id: 10
+ mail_notification: false
+members_007:
+ id: 7
+ created_on: 2006-07-19 19:35:33 +02:00
+ project_id: 5
+ user_id: 8
+ mail_notification: false
\ No newline at end of file
diff --git a/test/fixtures/messages.yml b/test/fixtures/messages.yml
index 8ed376eb2..b1c59772b 100644
--- a/test/fixtures/messages.yml
+++ b/test/fixtures/messages.yml
@@ -1,68 +1,68 @@
----
-messages_001:
- created_on: 2007-05-12 17:15:32 +02:00
- updated_on: 2007-05-12 17:15:32 +02:00
- subject: First post
- id: 1
- replies_count: 2
- last_reply_id: 3
- content: "This is the very first post\n\
- in the forum"
- author_id: 1
- parent_id:
- board_id: 1
-messages_002:
- created_on: 2007-05-12 17:18:00 +02:00
- updated_on: 2007-05-12 17:18:00 +02:00
- subject: First reply
- id: 2
- replies_count: 0
- last_reply_id:
- content: "Reply to the first post"
- author_id: 1
- parent_id: 1
- board_id: 1
-messages_003:
- created_on: 2007-05-12 17:18:02 +02:00
- updated_on: 2007-05-12 17:18:02 +02:00
- subject: "RE: First post"
- id: 3
- replies_count: 0
- last_reply_id:
- content: "An other reply"
- author_id: 2
- parent_id: 1
- board_id: 1
-messages_004:
- created_on: 2007-08-12 17:15:32 +02:00
- updated_on: 2007-08-12 17:15:32 +02:00
- subject: Post 2
- id: 4
- replies_count: 2
- last_reply_id: 6
- content: "This is an other post"
- author_id:
- parent_id:
- board_id: 1
-messages_005:
- created_on: <%= 3.days.ago.to_date.to_s(:db) %>
- updated_on: <%= 3.days.ago.to_date.to_s(:db) %>
- subject: 'RE: post 2'
- id: 5
- replies_count: 0
- last_reply_id:
- content: "Reply to the second post"
- author_id: 1
- parent_id: 4
- board_id: 1
-messages_006:
- created_on: <%= 2.days.ago.to_date.to_s(:db) %>
- updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
- subject: 'RE: post 2'
- id: 6
- replies_count: 0
- last_reply_id:
- content: "Another reply to the second post"
- author_id: 3
- parent_id: 4
- board_id: 1
+---
+messages_001:
+ created_on: 2007-05-12 17:15:32 +02:00
+ updated_on: 2007-05-12 17:15:32 +02:00
+ subject: First post
+ id: 1
+ replies_count: 2
+ last_reply_id: 3
+ content: "This is the very first post\n\
+ in the forum"
+ author_id: 1
+ parent_id:
+ board_id: 1
+messages_002:
+ created_on: 2007-05-12 17:18:00 +02:00
+ updated_on: 2007-05-12 17:18:00 +02:00
+ subject: First reply
+ id: 2
+ replies_count: 0
+ last_reply_id:
+ content: "Reply to the first post"
+ author_id: 1
+ parent_id: 1
+ board_id: 1
+messages_003:
+ created_on: 2007-05-12 17:18:02 +02:00
+ updated_on: 2007-05-12 17:18:02 +02:00
+ subject: "RE: First post"
+ id: 3
+ replies_count: 0
+ last_reply_id:
+ content: "An other reply"
+ author_id: 2
+ parent_id: 1
+ board_id: 1
+messages_004:
+ created_on: 2007-08-12 17:15:32 +02:00
+ updated_on: 2007-08-12 17:15:32 +02:00
+ subject: Post 2
+ id: 4
+ replies_count: 2
+ last_reply_id: 6
+ content: "This is an other post"
+ author_id:
+ parent_id:
+ board_id: 1
+messages_005:
+ created_on: <%= 3.days.ago.to_date.to_s(:db) %>
+ updated_on: <%= 3.days.ago.to_date.to_s(:db) %>
+ subject: 'RE: post 2'
+ id: 5
+ replies_count: 0
+ last_reply_id:
+ content: "Reply to the second post"
+ author_id: 1
+ parent_id: 4
+ board_id: 1
+messages_006:
+ created_on: <%= 2.days.ago.to_date.to_s(:db) %>
+ updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
+ subject: 'RE: post 2'
+ id: 6
+ replies_count: 0
+ last_reply_id:
+ content: "Another reply to the second post"
+ author_id: 3
+ parent_id: 4
+ board_id: 1
diff --git a/test/fixtures/news.yml b/test/fixtures/news.yml
index 2c2e2c134..1819095ce 100644
--- a/test/fixtures/news.yml
+++ b/test/fixtures/news.yml
@@ -1,22 +1,22 @@
----
-news_001:
- created_on: 2006-07-19 22:40:26 +02:00
- project_id: 1
- title: eCookbook first release !
- id: 1
- description: |-
- eCookbook 1.0 has been released.
-
- Visit http://ecookbook.somenet.foo/
- summary: First version was released...
- author_id: 2
- comments_count: 1
-news_002:
- created_on: 2006-07-19 22:42:58 +02:00
- project_id: 1
- title: 100,000 downloads for eCookbook
- id: 2
- description: eCookbook 1.0 have downloaded 100,000 times
- summary: eCookbook 1.0 have downloaded 100,000 times
- author_id: 2
- comments_count: 0
+---
+news_001:
+ created_on: 2006-07-19 22:40:26 +02:00
+ project_id: 1
+ title: eCookbook first release !
+ id: 1
+ description: |-
+ eCookbook 1.0 has been released.
+
+ Visit http://ecookbook.somenet.foo/
+ summary: First version was released...
+ author_id: 2
+ comments_count: 1
+news_002:
+ created_on: 2006-07-19 22:42:58 +02:00
+ project_id: 1
+ title: 100,000 downloads for eCookbook
+ id: 2
+ description: eCookbook 1.0 have downloaded 100,000 times
+ summary: eCookbook 1.0 have downloaded 100,000 times
+ author_id: 2
+ comments_count: 0
diff --git a/test/fixtures/projects.yml b/test/fixtures/projects.yml
index de692af0d..6ecc8ad73 100644
--- a/test/fixtures/projects.yml
+++ b/test/fixtures/projects.yml
@@ -1,74 +1,74 @@
----
-projects_001:
- created_on: 2006-07-19 19:13:59 +02:00
- name: eCookbook
- updated_on: 2006-07-19 22:53:01 +02:00
- id: 1
- description: Recipes management application
- homepage: http://ecookbook.somenet.foo/
- is_public: true
- identifier: ecookbook
- parent_id:
- lft: 1
- rgt: 10
-projects_002:
- created_on: 2006-07-19 19:14:19 +02:00
- name: OnlineStore
- updated_on: 2006-07-19 19:14:19 +02:00
- id: 2
- description: E-commerce web site
- homepage: ""
- is_public: false
- identifier: onlinestore
- parent_id:
- lft: 11
- rgt: 12
-projects_003:
- created_on: 2006-07-19 19:15:21 +02:00
- name: eCookbook Subproject 1
- updated_on: 2006-07-19 19:18:12 +02:00
- id: 3
- description: eCookBook Subproject 1
- homepage: ""
- is_public: true
- identifier: subproject1
- parent_id: 1
- lft: 6
- rgt: 7
-projects_004:
- created_on: 2006-07-19 19:15:51 +02:00
- name: eCookbook Subproject 2
- updated_on: 2006-07-19 19:17:07 +02:00
- id: 4
- description: eCookbook Subproject 2
- homepage: ""
- is_public: true
- identifier: subproject2
- parent_id: 1
- lft: 8
- rgt: 9
-projects_005:
- created_on: 2006-07-19 19:15:51 +02:00
- name: Private child of eCookbook
- updated_on: 2006-07-19 19:17:07 +02:00
- id: 5
- description: This is a private subproject of a public project
- homepage: ""
- is_public: false
- identifier: private-child
- parent_id: 1
- lft: 2
- rgt: 5
-projects_006:
- created_on: 2006-07-19 19:15:51 +02:00
- name: Child of private child
- updated_on: 2006-07-19 19:17:07 +02:00
- id: 6
- description: This is a public subproject of a private project
- homepage: ""
- is_public: true
- identifier: project6
- parent_id: 5
- lft: 3
- rgt: 4
+---
+projects_001:
+ created_on: 2006-07-19 19:13:59 +02:00
+ name: eCookbook
+ updated_on: 2006-07-19 22:53:01 +02:00
+ id: 1
+ description: Recipes management application
+ homepage: http://ecookbook.somenet.foo/
+ is_public: true
+ identifier: ecookbook
+ parent_id:
+ lft: 1
+ rgt: 10
+projects_002:
+ created_on: 2006-07-19 19:14:19 +02:00
+ name: OnlineStore
+ updated_on: 2006-07-19 19:14:19 +02:00
+ id: 2
+ description: E-commerce web site
+ homepage: ""
+ is_public: false
+ identifier: onlinestore
+ parent_id:
+ lft: 11
+ rgt: 12
+projects_003:
+ created_on: 2006-07-19 19:15:21 +02:00
+ name: eCookbook Subproject 1
+ updated_on: 2006-07-19 19:18:12 +02:00
+ id: 3
+ description: eCookBook Subproject 1
+ homepage: ""
+ is_public: true
+ identifier: subproject1
+ parent_id: 1
+ lft: 6
+ rgt: 7
+projects_004:
+ created_on: 2006-07-19 19:15:51 +02:00
+ name: eCookbook Subproject 2
+ updated_on: 2006-07-19 19:17:07 +02:00
+ id: 4
+ description: eCookbook Subproject 2
+ homepage: ""
+ is_public: true
+ identifier: subproject2
+ parent_id: 1
+ lft: 8
+ rgt: 9
+projects_005:
+ created_on: 2006-07-19 19:15:51 +02:00
+ name: Private child of eCookbook
+ updated_on: 2006-07-19 19:17:07 +02:00
+ id: 5
+ description: This is a private subproject of a public project
+ homepage: ""
+ is_public: false
+ identifier: private-child
+ parent_id: 1
+ lft: 2
+ rgt: 5
+projects_006:
+ created_on: 2006-07-19 19:15:51 +02:00
+ name: Child of private child
+ updated_on: 2006-07-19 19:17:07 +02:00
+ id: 6
+ description: This is a public subproject of a private project
+ homepage: ""
+ is_public: true
+ identifier: project6
+ parent_id: 5
+ lft: 3
+ rgt: 4
\ No newline at end of file
diff --git a/test/fixtures/queries.yml b/test/fixtures/queries.yml
index 563bf583a..3299f96f7 100644
--- a/test/fixtures/queries.yml
+++ b/test/fixtures/queries.yml
@@ -1,137 +1,137 @@
----
-queries_001:
- id: 1
- project_id: 1
- is_public: true
- name: Multiple custom fields query
- filters: |
- ---
- cf_1:
- :values:
- - MySQL
- :operator: "="
- status_id:
- :values:
- - "1"
- :operator: o
- cf_2:
- :values:
- - "125"
- :operator: "="
-
- user_id: 1
- column_names:
-queries_002:
- id: 2
- project_id: 1
- is_public: false
- name: Private query for cookbook
- filters: |
- ---
- tracker_id:
- :values:
- - "3"
- :operator: "="
- status_id:
- :values:
- - "1"
- :operator: o
-
- user_id: 3
- column_names:
-queries_003:
- id: 3
- project_id:
- is_public: false
- name: Private query for all projects
- filters: |
- ---
- tracker_id:
- :values:
- - "3"
- :operator: "="
-
- user_id: 3
- column_names:
-queries_004:
- id: 4
- project_id:
- is_public: true
- name: Public query for all projects
- filters: |
- ---
- tracker_id:
- :values:
- - "3"
- :operator: "="
-
- user_id: 2
- column_names:
-queries_005:
- id: 5
- project_id:
- is_public: true
- name: Open issues by priority and tracker
- filters: |
- ---
- status_id:
- :values:
- - "1"
- :operator: o
-
- user_id: 1
- column_names:
- sort_criteria: |
- ---
- - - priority
- - desc
- - - tracker
- - asc
-queries_006:
- id: 6
- project_id:
- is_public: true
- name: Open issues grouped by tracker
- filters: |
- ---
- status_id:
- :values:
- - "1"
- :operator: o
-
- user_id: 1
- column_names:
- group_by: tracker
- sort_criteria: |
- ---
- - - priority
- - desc
-queries_007:
- id: 7
- project_id: 2
- is_public: true
- name: Public query for project 2
- filters: |
- ---
- tracker_id:
- :values:
- - "3"
- :operator: "="
-
- user_id: 2
- column_names:
-queries_008:
- id: 8
- project_id: 2
- is_public: false
- name: Private query for project 2
- filters: |
- ---
- tracker_id:
- :values:
- - "3"
- :operator: "="
-
- user_id: 2
- column_names:
+---
+queries_001:
+ id: 1
+ project_id: 1
+ is_public: true
+ name: Multiple custom fields query
+ filters: |
+ ---
+ cf_1:
+ :values:
+ - MySQL
+ :operator: "="
+ status_id:
+ :values:
+ - "1"
+ :operator: o
+ cf_2:
+ :values:
+ - "125"
+ :operator: "="
+
+ user_id: 1
+ column_names:
+queries_002:
+ id: 2
+ project_id: 1
+ is_public: false
+ name: Private query for cookbook
+ filters: |
+ ---
+ tracker_id:
+ :values:
+ - "3"
+ :operator: "="
+ status_id:
+ :values:
+ - "1"
+ :operator: o
+
+ user_id: 3
+ column_names:
+queries_003:
+ id: 3
+ project_id:
+ is_public: false
+ name: Private query for all projects
+ filters: |
+ ---
+ tracker_id:
+ :values:
+ - "3"
+ :operator: "="
+
+ user_id: 3
+ column_names:
+queries_004:
+ id: 4
+ project_id:
+ is_public: true
+ name: Public query for all projects
+ filters: |
+ ---
+ tracker_id:
+ :values:
+ - "3"
+ :operator: "="
+
+ user_id: 2
+ column_names:
+queries_005:
+ id: 5
+ project_id:
+ is_public: true
+ name: Open issues by priority and tracker
+ filters: |
+ ---
+ status_id:
+ :values:
+ - "1"
+ :operator: o
+
+ user_id: 1
+ column_names:
+ sort_criteria: |
+ ---
+ - - priority
+ - desc
+ - - tracker
+ - asc
+queries_006:
+ id: 6
+ project_id:
+ is_public: true
+ name: Open issues grouped by tracker
+ filters: |
+ ---
+ status_id:
+ :values:
+ - "1"
+ :operator: o
+
+ user_id: 1
+ column_names:
+ group_by: tracker
+ sort_criteria: |
+ ---
+ - - priority
+ - desc
+queries_007:
+ id: 7
+ project_id: 2
+ is_public: true
+ name: Public query for project 2
+ filters: |
+ ---
+ tracker_id:
+ :values:
+ - "3"
+ :operator: "="
+
+ user_id: 2
+ column_names:
+queries_008:
+ id: 8
+ project_id: 2
+ is_public: false
+ name: Private query for project 2
+ filters: |
+ ---
+ tracker_id:
+ :values:
+ - "3"
+ :operator: "="
+
+ user_id: 2
+ column_names:
diff --git a/test/fixtures/repositories.yml b/test/fixtures/repositories.yml
index d86e301c9..c55105897 100644
--- a/test/fixtures/repositories.yml
+++ b/test/fixtures/repositories.yml
@@ -1,17 +1,17 @@
----
-repositories_001:
- project_id: 1
- url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
- id: 10
- root_url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
- password: ""
- login: ""
- type: Subversion
-repositories_002:
- project_id: 2
- url: svn://localhost/test
- id: 11
- root_url: svn://localhost
- password: ""
- login: ""
- type: Subversion
+---
+repositories_001:
+ project_id: 1
+ url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
+ id: 10
+ root_url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
+ password: ""
+ login: ""
+ type: Subversion
+repositories_002:
+ project_id: 2
+ url: svn://localhost/test
+ id: 11
+ root_url: svn://localhost
+ password: ""
+ login: ""
+ type: Subversion
diff --git a/test/fixtures/roles.yml b/test/fixtures/roles.yml
index 0bd078441..b8881fa4d 100644
--- a/test/fixtures/roles.yml
+++ b/test/fixtures/roles.yml
@@ -1,177 +1,177 @@
----
-roles_001:
- name: Manager
- id: 1
- builtin: 0
- permissions: |
- ---
- - :add_project
- - :edit_project
- - :manage_members
- - :manage_versions
- - :manage_categories
- - :add_issues
- - :edit_issues
- - :manage_issue_relations
- - :add_issue_notes
- - :move_issues
- - :delete_issues
- - :view_issue_watchers
- - :add_issue_watchers
- - :manage_public_queries
- - :save_queries
- - :view_gantt
- - :view_calendar
- - :log_time
- - :view_time_entries
- - :edit_time_entries
- - :delete_time_entries
- - :manage_news
- - :comment_news
- - :view_documents
- - :manage_documents
- - :view_wiki_pages
- - :view_wiki_edits
- - :edit_wiki_pages
- - :delete_wiki_pages_attachments
- - :protect_wiki_pages
- - :delete_wiki_pages
- - :rename_wiki_pages
- - :add_messages
- - :edit_messages
- - :delete_messages
- - :manage_boards
- - :view_files
- - :manage_files
- - :browse_repository
- - :manage_repository
- - :view_changesets
-
- position: 1
-roles_002:
- name: Developer
- id: 2
- builtin: 0
- permissions: |
- ---
- - :edit_project
- - :manage_members
- - :manage_versions
- - :manage_categories
- - :add_issues
- - :edit_issues
- - :manage_issue_relations
- - :add_issue_notes
- - :move_issues
- - :delete_issues
- - :view_issue_watchers
- - :save_queries
- - :view_gantt
- - :view_calendar
- - :log_time
- - :view_time_entries
- - :edit_own_time_entries
- - :manage_news
- - :comment_news
- - :view_documents
- - :manage_documents
- - :view_wiki_pages
- - :view_wiki_edits
- - :edit_wiki_pages
- - :protect_wiki_pages
- - :delete_wiki_pages
- - :add_messages
- - :edit_own_messages
- - :delete_own_messages
- - :manage_boards
- - :view_files
- - :manage_files
- - :browse_repository
- - :view_changesets
-
- position: 2
-roles_003:
- name: Reporter
- id: 3
- builtin: 0
- permissions: |
- ---
- - :edit_project
- - :manage_members
- - :manage_versions
- - :manage_categories
- - :add_issues
- - :edit_issues
- - :manage_issue_relations
- - :add_issue_notes
- - :move_issues
- - :view_issue_watchers
- - :save_queries
- - :view_gantt
- - :view_calendar
- - :log_time
- - :view_time_entries
- - :manage_news
- - :comment_news
- - :view_documents
- - :manage_documents
- - :view_wiki_pages
- - :view_wiki_edits
- - :edit_wiki_pages
- - :delete_wiki_pages
- - :add_messages
- - :manage_boards
- - :view_files
- - :manage_files
- - :browse_repository
- - :view_changesets
-
- position: 3
-roles_004:
- name: Non member
- id: 4
- builtin: 1
- permissions: |
- ---
- - :add_issues
- - :edit_issues
- - :manage_issue_relations
- - :add_issue_notes
- - :move_issues
- - :save_queries
- - :view_gantt
- - :view_calendar
- - :log_time
- - :view_time_entries
- - :comment_news
- - :view_documents
- - :manage_documents
- - :view_wiki_pages
- - :view_wiki_edits
- - :edit_wiki_pages
- - :add_messages
- - :view_files
- - :manage_files
- - :browse_repository
- - :view_changesets
-
- position: 4
-roles_005:
- name: Anonymous
- id: 5
- builtin: 2
- permissions: |
- ---
- - :add_issue_notes
- - :view_gantt
- - :view_calendar
- - :view_time_entries
- - :view_documents
- - :view_wiki_pages
- - :view_wiki_edits
- - :view_files
- - :browse_repository
- - :view_changesets
-
- position: 5
+---
+roles_001:
+ name: Manager
+ id: 1
+ builtin: 0
+ permissions: |
+ ---
+ - :add_project
+ - :edit_project
+ - :manage_members
+ - :manage_versions
+ - :manage_categories
+ - :add_issues
+ - :edit_issues
+ - :manage_issue_relations
+ - :add_issue_notes
+ - :move_issues
+ - :delete_issues
+ - :view_issue_watchers
+ - :add_issue_watchers
+ - :manage_public_queries
+ - :save_queries
+ - :view_gantt
+ - :view_calendar
+ - :log_time
+ - :view_time_entries
+ - :edit_time_entries
+ - :delete_time_entries
+ - :manage_news
+ - :comment_news
+ - :view_documents
+ - :manage_documents
+ - :view_wiki_pages
+ - :view_wiki_edits
+ - :edit_wiki_pages
+ - :delete_wiki_pages_attachments
+ - :protect_wiki_pages
+ - :delete_wiki_pages
+ - :rename_wiki_pages
+ - :add_messages
+ - :edit_messages
+ - :delete_messages
+ - :manage_boards
+ - :view_files
+ - :manage_files
+ - :browse_repository
+ - :manage_repository
+ - :view_changesets
+
+ position: 1
+roles_002:
+ name: Developer
+ id: 2
+ builtin: 0
+ permissions: |
+ ---
+ - :edit_project
+ - :manage_members
+ - :manage_versions
+ - :manage_categories
+ - :add_issues
+ - :edit_issues
+ - :manage_issue_relations
+ - :add_issue_notes
+ - :move_issues
+ - :delete_issues
+ - :view_issue_watchers
+ - :save_queries
+ - :view_gantt
+ - :view_calendar
+ - :log_time
+ - :view_time_entries
+ - :edit_own_time_entries
+ - :manage_news
+ - :comment_news
+ - :view_documents
+ - :manage_documents
+ - :view_wiki_pages
+ - :view_wiki_edits
+ - :edit_wiki_pages
+ - :protect_wiki_pages
+ - :delete_wiki_pages
+ - :add_messages
+ - :edit_own_messages
+ - :delete_own_messages
+ - :manage_boards
+ - :view_files
+ - :manage_files
+ - :browse_repository
+ - :view_changesets
+
+ position: 2
+roles_003:
+ name: Reporter
+ id: 3
+ builtin: 0
+ permissions: |
+ ---
+ - :edit_project
+ - :manage_members
+ - :manage_versions
+ - :manage_categories
+ - :add_issues
+ - :edit_issues
+ - :manage_issue_relations
+ - :add_issue_notes
+ - :move_issues
+ - :view_issue_watchers
+ - :save_queries
+ - :view_gantt
+ - :view_calendar
+ - :log_time
+ - :view_time_entries
+ - :manage_news
+ - :comment_news
+ - :view_documents
+ - :manage_documents
+ - :view_wiki_pages
+ - :view_wiki_edits
+ - :edit_wiki_pages
+ - :delete_wiki_pages
+ - :add_messages
+ - :manage_boards
+ - :view_files
+ - :manage_files
+ - :browse_repository
+ - :view_changesets
+
+ position: 3
+roles_004:
+ name: Non member
+ id: 4
+ builtin: 1
+ permissions: |
+ ---
+ - :add_issues
+ - :edit_issues
+ - :manage_issue_relations
+ - :add_issue_notes
+ - :move_issues
+ - :save_queries
+ - :view_gantt
+ - :view_calendar
+ - :log_time
+ - :view_time_entries
+ - :comment_news
+ - :view_documents
+ - :manage_documents
+ - :view_wiki_pages
+ - :view_wiki_edits
+ - :edit_wiki_pages
+ - :add_messages
+ - :view_files
+ - :manage_files
+ - :browse_repository
+ - :view_changesets
+
+ position: 4
+roles_005:
+ name: Anonymous
+ id: 5
+ builtin: 2
+ permissions: |
+ ---
+ - :add_issue_notes
+ - :view_gantt
+ - :view_calendar
+ - :view_time_entries
+ - :view_documents
+ - :view_wiki_pages
+ - :view_wiki_edits
+ - :view_files
+ - :browse_repository
+ - :view_changesets
+
+ position: 5
\ No newline at end of file
diff --git a/test/fixtures/time_entries.yml b/test/fixtures/time_entries.yml
index 4a8a4a2a4..a44c0938f 100644
--- a/test/fixtures/time_entries.yml
+++ b/test/fixtures/time_entries.yml
@@ -1,58 +1,58 @@
----
-time_entries_001:
- created_on: 2007-03-23 12:54:18 +01:00
- tweek: 12
- tmonth: 3
- project_id: 1
- comments: My hours
- updated_on: 2007-03-23 12:54:18 +01:00
- activity_id: 9
- spent_on: 2007-03-23
- issue_id: 1
- id: 1
- hours: 4.25
- user_id: 2
- tyear: 2007
-time_entries_002:
- created_on: 2007-03-23 14:11:04 +01:00
- tweek: 11
- tmonth: 3
- project_id: 1
- comments: ""
- updated_on: 2007-03-23 14:11:04 +01:00
- activity_id: 9
- spent_on: 2007-03-12
- issue_id: 1
- id: 2
- hours: 150.0
- user_id: 1
- tyear: 2007
-time_entries_003:
- created_on: 2007-04-21 12:20:48 +02:00
- tweek: 16
- tmonth: 4
- project_id: 1
- comments: ""
- updated_on: 2007-04-21 12:20:48 +02:00
- activity_id: 9
- spent_on: 2007-04-21
- issue_id: 3
- id: 3
- hours: 1.0
- user_id: 1
- tyear: 2007
-time_entries_004:
- created_on: 2007-04-22 12:20:48 +02:00
- tweek: 16
- tmonth: 4
- project_id: 3
- comments: Time spent on a subproject
- updated_on: 2007-04-22 12:20:48 +02:00
- activity_id: 10
- spent_on: 2007-04-22
- issue_id:
- id: 4
- hours: 7.65
- user_id: 1
- tyear: 2007
+---
+time_entries_001:
+ created_on: 2007-03-23 12:54:18 +01:00
+ tweek: 12
+ tmonth: 3
+ project_id: 1
+ comments: My hours
+ updated_on: 2007-03-23 12:54:18 +01:00
+ activity_id: 9
+ spent_on: 2007-03-23
+ issue_id: 1
+ id: 1
+ hours: 4.25
+ user_id: 2
+ tyear: 2007
+time_entries_002:
+ created_on: 2007-03-23 14:11:04 +01:00
+ tweek: 11
+ tmonth: 3
+ project_id: 1
+ comments: ""
+ updated_on: 2007-03-23 14:11:04 +01:00
+ activity_id: 9
+ spent_on: 2007-03-12
+ issue_id: 1
+ id: 2
+ hours: 150.0
+ user_id: 1
+ tyear: 2007
+time_entries_003:
+ created_on: 2007-04-21 12:20:48 +02:00
+ tweek: 16
+ tmonth: 4
+ project_id: 1
+ comments: ""
+ updated_on: 2007-04-21 12:20:48 +02:00
+ activity_id: 9
+ spent_on: 2007-04-21
+ issue_id: 3
+ id: 3
+ hours: 1.0
+ user_id: 1
+ tyear: 2007
+time_entries_004:
+ created_on: 2007-04-22 12:20:48 +02:00
+ tweek: 16
+ tmonth: 4
+ project_id: 3
+ comments: Time spent on a subproject
+ updated_on: 2007-04-22 12:20:48 +02:00
+ activity_id: 10
+ spent_on: 2007-04-22
+ issue_id:
+ id: 4
+ hours: 7.65
+ user_id: 1
+ tyear: 2007
\ No newline at end of file
diff --git a/test/fixtures/tokens.yml b/test/fixtures/tokens.yml
index e040a39e9..166d37ed1 100644
--- a/test/fixtures/tokens.yml
+++ b/test/fixtures/tokens.yml
@@ -1,13 +1,13 @@
----
-tokens_001:
- created_on: 2007-01-21 00:39:12 +01:00
- action: register
- id: 1
- value: DwMJ2yIxBNeAk26znMYzYmz5dAiIina0GFrPnGTM
- user_id: 1
-tokens_002:
- created_on: 2007-01-21 00:39:52 +01:00
- action: recovery
- id: 2
- value: sahYSIaoYrsZUef86sTHrLISdznW6ApF36h5WSnm
- user_id: 2
+---
+tokens_001:
+ created_on: 2007-01-21 00:39:12 +01:00
+ action: register
+ id: 1
+ value: DwMJ2yIxBNeAk26znMYzYmz5dAiIina0GFrPnGTM
+ user_id: 1
+tokens_002:
+ created_on: 2007-01-21 00:39:52 +01:00
+ action: recovery
+ id: 2
+ value: sahYSIaoYrsZUef86sTHrLISdznW6ApF36h5WSnm
+ user_id: 2
diff --git a/test/fixtures/trackers.yml b/test/fixtures/trackers.yml
index 2643e8d1a..43395a2e8 100644
--- a/test/fixtures/trackers.yml
+++ b/test/fixtures/trackers.yml
@@ -1,16 +1,16 @@
----
-trackers_001:
- name: Bug
- id: 1
- is_in_chlog: true
- position: 1
-trackers_002:
- name: Feature request
- id: 2
- is_in_chlog: true
- position: 2
-trackers_003:
- name: Support request
- id: 3
- is_in_chlog: false
- position: 3
+---
+trackers_001:
+ name: Bug
+ id: 1
+ is_in_chlog: true
+ position: 1
+trackers_002:
+ name: Feature request
+ id: 2
+ is_in_chlog: true
+ position: 2
+trackers_003:
+ name: Support request
+ id: 3
+ is_in_chlog: false
+ position: 3
diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml
index 442ddc155..29d4f1565 100644
--- a/test/fixtures/users.yml
+++ b/test/fixtures/users.yml
@@ -1,156 +1,156 @@
----
-users_004:
- created_on: 2006-07-19 19:34:07 +02:00
- status: 1
- last_login_on:
- language: en
- hashed_password: 4e4aeb7baaf0706bd670263fef42dad15763b608
- updated_on: 2006-07-19 19:34:07 +02:00
- admin: false
- mail: rhill@somenet.foo
- lastname: Hill
- firstname: Robert
- id: 4
- auth_source_id:
- mail_notification: true
- login: rhill
- type: User
-users_001:
- created_on: 2006-07-19 19:12:21 +02:00
- status: 1
- last_login_on: 2006-07-19 22:57:52 +02:00
- language: en
- hashed_password: d033e22ae348aeb5660fc2140aec35850c4da997
- updated_on: 2006-07-19 22:57:52 +02:00
- admin: true
- mail: admin@somenet.foo
- lastname: Admin
- firstname: redMine
- id: 1
- auth_source_id:
- mail_notification: true
- login: admin
- type: User
-users_002:
- created_on: 2006-07-19 19:32:09 +02:00
- status: 1
- last_login_on: 2006-07-19 22:42:15 +02:00
- language: en
- hashed_password: a9a653d4151fa2c081ba1ffc2c2726f3b80b7d7d
- updated_on: 2006-07-19 22:42:15 +02:00
- admin: false
- mail: jsmith@somenet.foo
- lastname: Smith
- firstname: John
- id: 2
- auth_source_id:
- mail_notification: true
- login: jsmith
- type: User
-users_003:
- created_on: 2006-07-19 19:33:19 +02:00
- status: 1
- last_login_on:
- language: en
- hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
- updated_on: 2006-07-19 19:33:19 +02:00
- admin: false
- mail: dlopper@somenet.foo
- lastname: Lopper
- firstname: Dave
- id: 3
- auth_source_id:
- mail_notification: true
- login: dlopper
- type: User
-users_005:
- id: 5
- created_on: 2006-07-19 19:33:19 +02:00
- # Locked
- status: 3
- last_login_on:
- language: en
- hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
- updated_on: 2006-07-19 19:33:19 +02:00
- admin: false
- mail: dlopper2@somenet.foo
- lastname: Lopper2
- firstname: Dave2
- auth_source_id:
- mail_notification: true
- login: dlopper2
- type: User
-users_006:
- id: 6
- created_on: 2006-07-19 19:33:19 +02:00
- status: 1
- last_login_on:
- language: ''
- hashed_password: 1
- updated_on: 2006-07-19 19:33:19 +02:00
- admin: false
- mail: ''
- lastname: Anonymous
- firstname: ''
- auth_source_id:
- mail_notification: false
- login: ''
- type: AnonymousUser
-users_007:
- id: 7
- created_on: 2006-07-19 19:33:19 +02:00
- status: 1
- last_login_on:
- language: ''
- hashed_password: 1
- updated_on: 2006-07-19 19:33:19 +02:00
- admin: false
- mail: someone@foo.bar
- lastname: One
- firstname: Some
- auth_source_id:
- mail_notification: false
- login: someone
- type: User
-users_008:
- id: 8
- created_on: 2006-07-19 19:33:19 +02:00
- status: 1
- last_login_on:
- language: 'it'
- hashed_password: 1
- updated_on: 2006-07-19 19:33:19 +02:00
- admin: false
- mail: miscuser8@foo.bar
- lastname: Misc
- firstname: User
- auth_source_id:
- mail_notification: false
- login: miscuser8
- type: User
-users_009:
- id: 9
- created_on: 2006-07-19 19:33:19 +02:00
- status: 1
- last_login_on:
- language: 'it'
- hashed_password: 1
- updated_on: 2006-07-19 19:33:19 +02:00
- admin: false
- mail: miscuser9@foo.bar
- lastname: Misc
- firstname: User
- auth_source_id:
- mail_notification: false
- login: miscuser9
- type: User
-groups_010:
- id: 10
- lastname: A Team
- type: Group
-groups_011:
- id: 11
- lastname: B Team
- type: Group
-
+---
+users_004:
+ created_on: 2006-07-19 19:34:07 +02:00
+ status: 1
+ last_login_on:
+ language: en
+ hashed_password: 4e4aeb7baaf0706bd670263fef42dad15763b608
+ updated_on: 2006-07-19 19:34:07 +02:00
+ admin: false
+ mail: rhill@somenet.foo
+ lastname: Hill
+ firstname: Robert
+ id: 4
+ auth_source_id:
+ mail_notification: true
+ login: rhill
+ type: User
+users_001:
+ created_on: 2006-07-19 19:12:21 +02:00
+ status: 1
+ last_login_on: 2006-07-19 22:57:52 +02:00
+ language: en
+ hashed_password: d033e22ae348aeb5660fc2140aec35850c4da997
+ updated_on: 2006-07-19 22:57:52 +02:00
+ admin: true
+ mail: admin@somenet.foo
+ lastname: Admin
+ firstname: redMine
+ id: 1
+ auth_source_id:
+ mail_notification: true
+ login: admin
+ type: User
+users_002:
+ created_on: 2006-07-19 19:32:09 +02:00
+ status: 1
+ last_login_on: 2006-07-19 22:42:15 +02:00
+ language: en
+ hashed_password: a9a653d4151fa2c081ba1ffc2c2726f3b80b7d7d
+ updated_on: 2006-07-19 22:42:15 +02:00
+ admin: false
+ mail: jsmith@somenet.foo
+ lastname: Smith
+ firstname: John
+ id: 2
+ auth_source_id:
+ mail_notification: true
+ login: jsmith
+ type: User
+users_003:
+ created_on: 2006-07-19 19:33:19 +02:00
+ status: 1
+ last_login_on:
+ language: en
+ hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
+ updated_on: 2006-07-19 19:33:19 +02:00
+ admin: false
+ mail: dlopper@somenet.foo
+ lastname: Lopper
+ firstname: Dave
+ id: 3
+ auth_source_id:
+ mail_notification: true
+ login: dlopper
+ type: User
+users_005:
+ id: 5
+ created_on: 2006-07-19 19:33:19 +02:00
+ # Locked
+ status: 3
+ last_login_on:
+ language: en
+ hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
+ updated_on: 2006-07-19 19:33:19 +02:00
+ admin: false
+ mail: dlopper2@somenet.foo
+ lastname: Lopper2
+ firstname: Dave2
+ auth_source_id:
+ mail_notification: true
+ login: dlopper2
+ type: User
+users_006:
+ id: 6
+ created_on: 2006-07-19 19:33:19 +02:00
+ status: 1
+ last_login_on:
+ language: ''
+ hashed_password: 1
+ updated_on: 2006-07-19 19:33:19 +02:00
+ admin: false
+ mail: ''
+ lastname: Anonymous
+ firstname: ''
+ auth_source_id:
+ mail_notification: false
+ login: ''
+ type: AnonymousUser
+users_007:
+ id: 7
+ created_on: 2006-07-19 19:33:19 +02:00
+ status: 1
+ last_login_on:
+ language: ''
+ hashed_password: 1
+ updated_on: 2006-07-19 19:33:19 +02:00
+ admin: false
+ mail: someone@foo.bar
+ lastname: One
+ firstname: Some
+ auth_source_id:
+ mail_notification: false
+ login: someone
+ type: User
+users_008:
+ id: 8
+ created_on: 2006-07-19 19:33:19 +02:00
+ status: 1
+ last_login_on:
+ language: 'it'
+ hashed_password: 1
+ updated_on: 2006-07-19 19:33:19 +02:00
+ admin: false
+ mail: miscuser8@foo.bar
+ lastname: Misc
+ firstname: User
+ auth_source_id:
+ mail_notification: false
+ login: miscuser8
+ type: User
+users_009:
+ id: 9
+ created_on: 2006-07-19 19:33:19 +02:00
+ status: 1
+ last_login_on:
+ language: 'it'
+ hashed_password: 1
+ updated_on: 2006-07-19 19:33:19 +02:00
+ admin: false
+ mail: miscuser9@foo.bar
+ lastname: Misc
+ firstname: User
+ auth_source_id:
+ mail_notification: false
+ login: miscuser9
+ type: User
+groups_010:
+ id: 10
+ lastname: A Team
+ type: Group
+groups_011:
+ id: 11
+ lastname: B Team
+ type: Group
+
\ No newline at end of file
diff --git a/test/fixtures/versions.yml b/test/fixtures/versions.yml
index 62c5e6f99..9306811f2 100644
--- a/test/fixtures/versions.yml
+++ b/test/fixtures/versions.yml
@@ -1,26 +1,26 @@
----
-versions_001:
- created_on: 2006-07-19 21:00:07 +02:00
- name: "0.1"
- project_id: 1
- updated_on: 2006-07-19 21:00:07 +02:00
- id: 1
- description: Beta
- effective_date: 2006-07-01
-versions_002:
- created_on: 2006-07-19 21:00:33 +02:00
- name: "1.0"
- project_id: 1
- updated_on: 2006-07-19 21:00:33 +02:00
- id: 2
- description: Stable release
- effective_date: <%= 20.day.from_now.to_date.to_s(:db) %>
-versions_003:
- created_on: 2006-07-19 21:00:33 +02:00
- name: "2.0"
- project_id: 1
- updated_on: 2006-07-19 21:00:33 +02:00
- id: 3
- description: Future version
- effective_date:
+---
+versions_001:
+ created_on: 2006-07-19 21:00:07 +02:00
+ name: "0.1"
+ project_id: 1
+ updated_on: 2006-07-19 21:00:07 +02:00
+ id: 1
+ description: Beta
+ effective_date: 2006-07-01
+versions_002:
+ created_on: 2006-07-19 21:00:33 +02:00
+ name: "1.0"
+ project_id: 1
+ updated_on: 2006-07-19 21:00:33 +02:00
+ id: 2
+ description: Stable release
+ effective_date: <%= 20.day.from_now.to_date.to_s(:db) %>
+versions_003:
+ created_on: 2006-07-19 21:00:33 +02:00
+ name: "2.0"
+ project_id: 1
+ updated_on: 2006-07-19 21:00:33 +02:00
+ id: 3
+ description: Future version
+ effective_date:
\ No newline at end of file
diff --git a/test/fixtures/wiki_content_versions.yml b/test/fixtures/wiki_content_versions.yml
index 260149060..652f0fb39 100644
--- a/test/fixtures/wiki_content_versions.yml
+++ b/test/fixtures/wiki_content_versions.yml
@@ -1,52 +1,56 @@
----
-wiki_content_versions_001:
- updated_on: 2007-03-07 00:08:07 +01:00
- page_id: 1
- id: 1
- version: 1
- author_id: 2
- comments: Page creation
- wiki_content_id: 1
- compression: ""
- data: |-
- h1. CookBook documentation
-
- Some [[documentation]] here...
-wiki_content_versions_002:
- updated_on: 2007-03-07 00:08:34 +01:00
- page_id: 1
- id: 2
- version: 2
- author_id: 1
- comments: Small update
- wiki_content_id: 1
- compression: ""
- data: |-
- h1. CookBook documentation
-
- Some updated [[documentation]] here...
-wiki_content_versions_003:
- updated_on: 2007-03-07 00:10:51 +01:00
- page_id: 1
- id: 3
- version: 3
- author_id: 1
- comments: ""
- wiki_content_id: 1
- compression: ""
- data: |-
- h1. CookBook documentation
- Some updated [[documentation]] here...
-wiki_content_versions_004:
- data: |-
- h1. Another page
-
- This is a link to a ticket: #2
- updated_on: 2007-03-08 00:18:07 +01:00
- page_id: 2
- wiki_content_id: 2
- id: 4
- version: 1
- author_id: 1
- comments:
-
+---
+wiki_content_versions_001:
+ updated_on: 2007-03-07 00:08:07 +01:00
+ page_id: 1
+ id: 1
+ version: 1
+ author_id: 2
+ comments: Page creation
+ wiki_content_id: 1
+ compression: ""
+ data: |-
+ h1. CookBook documentation
+
+
+
+ Some [[documentation]] here...
+wiki_content_versions_002:
+ updated_on: 2007-03-07 00:08:34 +01:00
+ page_id: 1
+ id: 2
+ version: 2
+ author_id: 1
+ comments: Small update
+ wiki_content_id: 1
+ compression: ""
+ data: |-
+ h1. CookBook documentation
+
+
+
+ Some updated [[documentation]] here...
+wiki_content_versions_003:
+ updated_on: 2007-03-07 00:10:51 +01:00
+ page_id: 1
+ id: 3
+ version: 3
+ author_id: 1
+ comments: ""
+ wiki_content_id: 1
+ compression: ""
+ data: |-
+ h1. CookBook documentation
+ Some updated [[documentation]] here...
+wiki_content_versions_004:
+ data: |-
+ h1. Another page
+
+ This is a link to a ticket: #2
+ updated_on: 2007-03-08 00:18:07 +01:00
+ page_id: 2
+ wiki_content_id: 2
+ id: 4
+ version: 1
+ author_id: 1
+ comments:
+
diff --git a/test/fixtures/wiki_contents.yml b/test/fixtures/wiki_contents.yml
index 8798ff229..96aa2ccde 100644
--- a/test/fixtures/wiki_contents.yml
+++ b/test/fixtures/wiki_contents.yml
@@ -1,72 +1,74 @@
----
-wiki_contents_001:
- text: |-
- h1. CookBook documentation
- {{child_pages}}
- Some updated [[documentation]] here with gzipped history
- updated_on: 2007-03-07 00:10:51 +01:00
- page_id: 1
- id: 1
- version: 3
- author_id: 1
- comments: Gzip compression activated
-wiki_contents_002:
- text: |-
- h1. Another page
-
- This is a link to a ticket: #2
- And this is an included page:
- {{include(Page with an inline image)}}
- updated_on: 2007-03-08 00:18:07 +01:00
- page_id: 2
- id: 2
- version: 1
- author_id: 1
- comments:
-wiki_contents_003:
- text: |-
- h1. Start page
-
- E-commerce web site start page
- updated_on: 2007-03-08 00:18:07 +01:00
- page_id: 3
- id: 3
- version: 1
- author_id: 1
- comments:
-wiki_contents_004:
- text: |-
- h1. Page with an inline image
-
- This is an inline image:
-
- !logo.gif!
- updated_on: 2007-03-08 00:18:07 +01:00
- page_id: 4
- id: 4
- version: 1
- author_id: 1
- comments:
-wiki_contents_005:
- text: |-
- h1. Child page 1
-
- This is a child page
- updated_on: 2007-03-08 00:18:07 +01:00
- page_id: 5
- id: 5
- version: 1
- author_id: 1
- comments:
-wiki_contents_006:
- text: |-
- h1. Child page 2
-
- This is a child page
- updated_on: 2007-03-08 00:18:07 +01:00
- page_id: 6
- id: 6
- version: 1
- author_id: 1
- comments:
+---
+wiki_contents_001:
+ text: |-
+ h1. CookBook documentation
+
+ {{child_pages}}
+
+ Some updated [[documentation]] here with gzipped history
+ updated_on: 2007-03-07 00:10:51 +01:00
+ page_id: 1
+ id: 1
+ version: 3
+ author_id: 1
+ comments: Gzip compression activated
+wiki_contents_002:
+ text: |-
+ h1. Another page
+
+ This is a link to a ticket: #2
+ And this is an included page:
+ {{include(Page with an inline image)}}
+ updated_on: 2007-03-08 00:18:07 +01:00
+ page_id: 2
+ id: 2
+ version: 1
+ author_id: 1
+ comments:
+wiki_contents_003:
+ text: |-
+ h1. Start page
+
+ E-commerce web site start page
+ updated_on: 2007-03-08 00:18:07 +01:00
+ page_id: 3
+ id: 3
+ version: 1
+ author_id: 1
+ comments:
+wiki_contents_004:
+ text: |-
+ h1. Page with an inline image
+
+ This is an inline image:
+
+ !logo.gif!
+ updated_on: 2007-03-08 00:18:07 +01:00
+ page_id: 4
+ id: 4
+ version: 1
+ author_id: 1
+ comments:
+wiki_contents_005:
+ text: |-
+ h1. Child page 1
+
+ This is a child page
+ updated_on: 2007-03-08 00:18:07 +01:00
+ page_id: 5
+ id: 5
+ version: 1
+ author_id: 1
+ comments:
+wiki_contents_006:
+ text: |-
+ h1. Child page 2
+
+ This is a child page
+ updated_on: 2007-03-08 00:18:07 +01:00
+ page_id: 6
+ id: 6
+ version: 1
+ author_id: 1
+ comments:
\ No newline at end of file
diff --git a/test/fixtures/wiki_pages.yml b/test/fixtures/wiki_pages.yml
index 8d29c2f72..a0b8b790a 100644
--- a/test/fixtures/wiki_pages.yml
+++ b/test/fixtures/wiki_pages.yml
@@ -1,44 +1,44 @@
----
-wiki_pages_001:
- created_on: 2007-03-07 00:08:07 +01:00
- title: CookBook_documentation
- id: 1
- wiki_id: 1
- protected: true
- parent_id:
-wiki_pages_002:
- created_on: 2007-03-08 00:18:07 +01:00
- title: Another_page
- id: 2
- wiki_id: 1
- protected: false
- parent_id:
-wiki_pages_003:
- created_on: 2007-03-08 00:18:07 +01:00
- title: Start_page
- id: 3
- wiki_id: 2
- protected: false
- parent_id:
-wiki_pages_004:
- created_on: 2007-03-08 00:18:07 +01:00
- title: Page_with_an_inline_image
- id: 4
- wiki_id: 1
- protected: false
- parent_id: 1
-wiki_pages_005:
- created_on: 2007-03-08 00:18:07 +01:00
- title: Child_1
- id: 5
- wiki_id: 1
- protected: false
- parent_id: 2
-wiki_pages_006:
- created_on: 2007-03-08 00:18:07 +01:00
- title: Child_2
- id: 6
- wiki_id: 1
- protected: false
- parent_id: 2
+---
+wiki_pages_001:
+ created_on: 2007-03-07 00:08:07 +01:00
+ title: CookBook_documentation
+ id: 1
+ wiki_id: 1
+ protected: true
+ parent_id:
+wiki_pages_002:
+ created_on: 2007-03-08 00:18:07 +01:00
+ title: Another_page
+ id: 2
+ wiki_id: 1
+ protected: false
+ parent_id:
+wiki_pages_003:
+ created_on: 2007-03-08 00:18:07 +01:00
+ title: Start_page
+ id: 3
+ wiki_id: 2
+ protected: false
+ parent_id:
+wiki_pages_004:
+ created_on: 2007-03-08 00:18:07 +01:00
+ title: Page_with_an_inline_image
+ id: 4
+ wiki_id: 1
+ protected: false
+ parent_id: 1
+wiki_pages_005:
+ created_on: 2007-03-08 00:18:07 +01:00
+ title: Child_1
+ id: 5
+ wiki_id: 1
+ protected: false
+ parent_id: 2
+wiki_pages_006:
+ created_on: 2007-03-08 00:18:07 +01:00
+ title: Child_2
+ id: 6
+ wiki_id: 1
+ protected: false
+ parent_id: 2
\ No newline at end of file
diff --git a/test/fixtures/wikis.yml b/test/fixtures/wikis.yml
index dd1c55cea..1e74039de 100644
--- a/test/fixtures/wikis.yml
+++ b/test/fixtures/wikis.yml
@@ -1,12 +1,12 @@
----
-wikis_001:
- status: 1
- start_page: CookBook documentation
- project_id: 1
- id: 1
-wikis_002:
- status: 1
- start_page: Start page
- project_id: 2
- id: 2
+---
+wikis_001:
+ status: 1
+ start_page: CookBook documentation
+ project_id: 1
+ id: 1
+wikis_002:
+ status: 1
+ start_page: Start page
+ project_id: 2
+ id: 2
\ No newline at end of file
diff --git a/test/fixtures/workflows.yml b/test/fixtures/workflows.yml
index bef5ae016..6126055ca 100644
--- a/test/fixtures/workflows.yml
+++ b/test/fixtures/workflows.yml
@@ -1,1615 +1,1615 @@
----
-workflows_189:
- new_status_id: 5
- role_id: 1
- old_status_id: 2
- id: 189
- tracker_id: 3
-workflows_001:
- new_status_id: 2
- role_id: 1
- old_status_id: 1
- id: 1
- tracker_id: 1
-workflows_002:
- new_status_id: 3
- role_id: 1
- old_status_id: 1
- id: 2
- tracker_id: 1
-workflows_003:
- new_status_id: 4
- role_id: 1
- old_status_id: 1
- id: 3
- tracker_id: 1
-workflows_110:
- new_status_id: 6
- role_id: 1
- old_status_id: 4
- id: 110
- tracker_id: 2
-workflows_004:
- new_status_id: 5
- role_id: 1
- old_status_id: 1
- id: 4
- tracker_id: 1
-workflows_030:
- new_status_id: 5
- role_id: 1
- old_status_id: 6
- id: 30
- tracker_id: 1
-workflows_111:
- new_status_id: 1
- role_id: 1
- old_status_id: 5
- id: 111
- tracker_id: 2
-workflows_005:
- new_status_id: 6
- role_id: 1
- old_status_id: 1
- id: 5
- tracker_id: 1
-workflows_031:
- new_status_id: 2
- role_id: 2
- old_status_id: 1
- id: 31
- tracker_id: 1
-workflows_112:
- new_status_id: 2
- role_id: 1
- old_status_id: 5
- id: 112
- tracker_id: 2
-workflows_006:
- new_status_id: 1
- role_id: 1
- old_status_id: 2
- id: 6
- tracker_id: 1
-workflows_032:
- new_status_id: 3
- role_id: 2
- old_status_id: 1
- id: 32
- tracker_id: 1
-workflows_113:
- new_status_id: 3
- role_id: 1
- old_status_id: 5
- id: 113
- tracker_id: 2
-workflows_220:
- new_status_id: 6
- role_id: 2
- old_status_id: 2
- id: 220
- tracker_id: 3
-workflows_007:
- new_status_id: 3
- role_id: 1
- old_status_id: 2
- id: 7
- tracker_id: 1
-workflows_033:
- new_status_id: 4
- role_id: 2
- old_status_id: 1
- id: 33
- tracker_id: 1
-workflows_060:
- new_status_id: 5
- role_id: 2
- old_status_id: 6
- id: 60
- tracker_id: 1
-workflows_114:
- new_status_id: 4
- role_id: 1
- old_status_id: 5
- id: 114
- tracker_id: 2
-workflows_140:
- new_status_id: 6
- role_id: 2
- old_status_id: 4
- id: 140
- tracker_id: 2
-workflows_221:
- new_status_id: 1
- role_id: 2
- old_status_id: 3
- id: 221
- tracker_id: 3
-workflows_008:
- new_status_id: 4
- role_id: 1
- old_status_id: 2
- id: 8
- tracker_id: 1
-workflows_034:
- new_status_id: 5
- role_id: 2
- old_status_id: 1
- id: 34
- tracker_id: 1
-workflows_115:
- new_status_id: 6
- role_id: 1
- old_status_id: 5
- id: 115
- tracker_id: 2
-workflows_141:
- new_status_id: 1
- role_id: 2
- old_status_id: 5
- id: 141
- tracker_id: 2
-workflows_222:
- new_status_id: 2
- role_id: 2
- old_status_id: 3
- id: 222
- tracker_id: 3
-workflows_223:
- new_status_id: 4
- role_id: 2
- old_status_id: 3
- id: 223
- tracker_id: 3
-workflows_009:
- new_status_id: 5
- role_id: 1
- old_status_id: 2
- id: 9
- tracker_id: 1
-workflows_035:
- new_status_id: 6
- role_id: 2
- old_status_id: 1
- id: 35
- tracker_id: 1
-workflows_061:
- new_status_id: 2
- role_id: 3
- old_status_id: 1
- id: 61
- tracker_id: 1
-workflows_116:
- new_status_id: 1
- role_id: 1
- old_status_id: 6
- id: 116
- tracker_id: 2
-workflows_142:
- new_status_id: 2
- role_id: 2
- old_status_id: 5
- id: 142
- tracker_id: 2
-workflows_250:
- new_status_id: 6
- role_id: 3
- old_status_id: 2
- id: 250
- tracker_id: 3
-workflows_224:
- new_status_id: 5
- role_id: 2
- old_status_id: 3
- id: 224
- tracker_id: 3
-workflows_036:
- new_status_id: 1
- role_id: 2
- old_status_id: 2
- id: 36
- tracker_id: 1
-workflows_062:
- new_status_id: 3
- role_id: 3
- old_status_id: 1
- id: 62
- tracker_id: 1
-workflows_117:
- new_status_id: 2
- role_id: 1
- old_status_id: 6
- id: 117
- tracker_id: 2
-workflows_143:
- new_status_id: 3
- role_id: 2
- old_status_id: 5
- id: 143
- tracker_id: 2
-workflows_170:
- new_status_id: 6
- role_id: 3
- old_status_id: 4
- id: 170
- tracker_id: 2
-workflows_251:
- new_status_id: 1
- role_id: 3
- old_status_id: 3
- id: 251
- tracker_id: 3
-workflows_225:
- new_status_id: 6
- role_id: 2
- old_status_id: 3
- id: 225
- tracker_id: 3
-workflows_063:
- new_status_id: 4
- role_id: 3
- old_status_id: 1
- id: 63
- tracker_id: 1
-workflows_090:
- new_status_id: 5
- role_id: 3
- old_status_id: 6
- id: 90
- tracker_id: 1
-workflows_118:
- new_status_id: 3
- role_id: 1
- old_status_id: 6
- id: 118
- tracker_id: 2
-workflows_144:
- new_status_id: 4
- role_id: 2
- old_status_id: 5
- id: 144
- tracker_id: 2
-workflows_252:
- new_status_id: 2
- role_id: 3
- old_status_id: 3
- id: 252
- tracker_id: 3
-workflows_226:
- new_status_id: 1
- role_id: 2
- old_status_id: 4
- id: 226
- tracker_id: 3
-workflows_038:
- new_status_id: 4
- role_id: 2
- old_status_id: 2
- id: 38
- tracker_id: 1
-workflows_064:
- new_status_id: 5
- role_id: 3
- old_status_id: 1
- id: 64
- tracker_id: 1
-workflows_091:
- new_status_id: 2
- role_id: 1
- old_status_id: 1
- id: 91
- tracker_id: 2
-workflows_119:
- new_status_id: 4
- role_id: 1
- old_status_id: 6
- id: 119
- tracker_id: 2
-workflows_145:
- new_status_id: 6
- role_id: 2
- old_status_id: 5
- id: 145
- tracker_id: 2
-workflows_171:
- new_status_id: 1
- role_id: 3
- old_status_id: 5
- id: 171
- tracker_id: 2
-workflows_253:
- new_status_id: 4
- role_id: 3
- old_status_id: 3
- id: 253
- tracker_id: 3
-workflows_227:
- new_status_id: 2
- role_id: 2
- old_status_id: 4
- id: 227
- tracker_id: 3
-workflows_039:
- new_status_id: 5
- role_id: 2
- old_status_id: 2
- id: 39
- tracker_id: 1
-workflows_065:
- new_status_id: 6
- role_id: 3
- old_status_id: 1
- id: 65
- tracker_id: 1
-workflows_092:
- new_status_id: 3
- role_id: 1
- old_status_id: 1
- id: 92
- tracker_id: 2
-workflows_146:
- new_status_id: 1
- role_id: 2
- old_status_id: 6
- id: 146
- tracker_id: 2
-workflows_172:
- new_status_id: 2
- role_id: 3
- old_status_id: 5
- id: 172
- tracker_id: 2
-workflows_254:
- new_status_id: 5
- role_id: 3
- old_status_id: 3
- id: 254
- tracker_id: 3
-workflows_228:
- new_status_id: 3
- role_id: 2
- old_status_id: 4
- id: 228
- tracker_id: 3
-workflows_066:
- new_status_id: 1
- role_id: 3
- old_status_id: 2
- id: 66
- tracker_id: 1
-workflows_093:
- new_status_id: 4
- role_id: 1
- old_status_id: 1
- id: 93
- tracker_id: 2
-workflows_147:
- new_status_id: 2
- role_id: 2
- old_status_id: 6
- id: 147
- tracker_id: 2
-workflows_173:
- new_status_id: 3
- role_id: 3
- old_status_id: 5
- id: 173
- tracker_id: 2
-workflows_255:
- new_status_id: 6
- role_id: 3
- old_status_id: 3
- id: 255
- tracker_id: 3
-workflows_229:
- new_status_id: 5
- role_id: 2
- old_status_id: 4
- id: 229
- tracker_id: 3
-workflows_067:
- new_status_id: 3
- role_id: 3
- old_status_id: 2
- id: 67
- tracker_id: 1
-workflows_148:
- new_status_id: 3
- role_id: 2
- old_status_id: 6
- id: 148
- tracker_id: 2
-workflows_174:
- new_status_id: 4
- role_id: 3
- old_status_id: 5
- id: 174
- tracker_id: 2
-workflows_256:
- new_status_id: 1
- role_id: 3
- old_status_id: 4
- id: 256
- tracker_id: 3
-workflows_068:
- new_status_id: 4
- role_id: 3
- old_status_id: 2
- id: 68
- tracker_id: 1
-workflows_094:
- new_status_id: 5
- role_id: 1
- old_status_id: 1
- id: 94
- tracker_id: 2
-workflows_149:
- new_status_id: 4
- role_id: 2
- old_status_id: 6
- id: 149
- tracker_id: 2
-workflows_175:
- new_status_id: 6
- role_id: 3
- old_status_id: 5
- id: 175
- tracker_id: 2
-workflows_257:
- new_status_id: 2
- role_id: 3
- old_status_id: 4
- id: 257
- tracker_id: 3
-workflows_069:
- new_status_id: 5
- role_id: 3
- old_status_id: 2
- id: 69
- tracker_id: 1
-workflows_095:
- new_status_id: 6
- role_id: 1
- old_status_id: 1
- id: 95
- tracker_id: 2
-workflows_176:
- new_status_id: 1
- role_id: 3
- old_status_id: 6
- id: 176
- tracker_id: 2
-workflows_258:
- new_status_id: 3
- role_id: 3
- old_status_id: 4
- id: 258
- tracker_id: 3
-workflows_096:
- new_status_id: 1
- role_id: 1
- old_status_id: 2
- id: 96
- tracker_id: 2
-workflows_177:
- new_status_id: 2
- role_id: 3
- old_status_id: 6
- id: 177
- tracker_id: 2
-workflows_259:
- new_status_id: 5
- role_id: 3
- old_status_id: 4
- id: 259
- tracker_id: 3
-workflows_097:
- new_status_id: 3
- role_id: 1
- old_status_id: 2
- id: 97
- tracker_id: 2
-workflows_178:
- new_status_id: 3
- role_id: 3
- old_status_id: 6
- id: 178
- tracker_id: 2
-workflows_098:
- new_status_id: 4
- role_id: 1
- old_status_id: 2
- id: 98
- tracker_id: 2
-workflows_179:
- new_status_id: 4
- role_id: 3
- old_status_id: 6
- id: 179
- tracker_id: 2
-workflows_099:
- new_status_id: 5
- role_id: 1
- old_status_id: 2
- id: 99
- tracker_id: 2
-workflows_100:
- new_status_id: 6
- role_id: 1
- old_status_id: 2
- id: 100
- tracker_id: 2
-workflows_020:
- new_status_id: 6
- role_id: 1
- old_status_id: 4
- id: 20
- tracker_id: 1
-workflows_101:
- new_status_id: 1
- role_id: 1
- old_status_id: 3
- id: 101
- tracker_id: 2
-workflows_021:
- new_status_id: 1
- role_id: 1
- old_status_id: 5
- id: 21
- tracker_id: 1
-workflows_102:
- new_status_id: 2
- role_id: 1
- old_status_id: 3
- id: 102
- tracker_id: 2
-workflows_210:
- new_status_id: 5
- role_id: 1
- old_status_id: 6
- id: 210
- tracker_id: 3
-workflows_022:
- new_status_id: 2
- role_id: 1
- old_status_id: 5
- id: 22
- tracker_id: 1
-workflows_103:
- new_status_id: 4
- role_id: 1
- old_status_id: 3
- id: 103
- tracker_id: 2
-workflows_023:
- new_status_id: 3
- role_id: 1
- old_status_id: 5
- id: 23
- tracker_id: 1
-workflows_104:
- new_status_id: 5
- role_id: 1
- old_status_id: 3
- id: 104
- tracker_id: 2
-workflows_130:
- new_status_id: 6
- role_id: 2
- old_status_id: 2
- id: 130
- tracker_id: 2
-workflows_211:
- new_status_id: 2
- role_id: 2
- old_status_id: 1
- id: 211
- tracker_id: 3
-workflows_024:
- new_status_id: 4
- role_id: 1
- old_status_id: 5
- id: 24
- tracker_id: 1
-workflows_050:
- new_status_id: 6
- role_id: 2
- old_status_id: 4
- id: 50
- tracker_id: 1
-workflows_105:
- new_status_id: 6
- role_id: 1
- old_status_id: 3
- id: 105
- tracker_id: 2
-workflows_131:
- new_status_id: 1
- role_id: 2
- old_status_id: 3
- id: 131
- tracker_id: 2
-workflows_212:
- new_status_id: 3
- role_id: 2
- old_status_id: 1
- id: 212
- tracker_id: 3
-workflows_025:
- new_status_id: 6
- role_id: 1
- old_status_id: 5
- id: 25
- tracker_id: 1
-workflows_051:
- new_status_id: 1
- role_id: 2
- old_status_id: 5
- id: 51
- tracker_id: 1
-workflows_106:
- new_status_id: 1
- role_id: 1
- old_status_id: 4
- id: 106
- tracker_id: 2
-workflows_132:
- new_status_id: 2
- role_id: 2
- old_status_id: 3
- id: 132
- tracker_id: 2
-workflows_213:
- new_status_id: 4
- role_id: 2
- old_status_id: 1
- id: 213
- tracker_id: 3
-workflows_240:
- new_status_id: 5
- role_id: 2
- old_status_id: 6
- id: 240
- tracker_id: 3
-workflows_026:
- new_status_id: 1
- role_id: 1
- old_status_id: 6
- id: 26
- tracker_id: 1
-workflows_052:
- new_status_id: 2
- role_id: 2
- old_status_id: 5
- id: 52
- tracker_id: 1
-workflows_107:
- new_status_id: 2
- role_id: 1
- old_status_id: 4
- id: 107
- tracker_id: 2
-workflows_133:
- new_status_id: 4
- role_id: 2
- old_status_id: 3
- id: 133
- tracker_id: 2
-workflows_214:
- new_status_id: 5
- role_id: 2
- old_status_id: 1
- id: 214
- tracker_id: 3
-workflows_241:
- new_status_id: 2
- role_id: 3
- old_status_id: 1
- id: 241
- tracker_id: 3
-workflows_027:
- new_status_id: 2
- role_id: 1
- old_status_id: 6
- id: 27
- tracker_id: 1
-workflows_053:
- new_status_id: 3
- role_id: 2
- old_status_id: 5
- id: 53
- tracker_id: 1
-workflows_080:
- new_status_id: 6
- role_id: 3
- old_status_id: 4
- id: 80
- tracker_id: 1
-workflows_108:
- new_status_id: 3
- role_id: 1
- old_status_id: 4
- id: 108
- tracker_id: 2
-workflows_134:
- new_status_id: 5
- role_id: 2
- old_status_id: 3
- id: 134
- tracker_id: 2
-workflows_160:
- new_status_id: 6
- role_id: 3
- old_status_id: 2
- id: 160
- tracker_id: 2
-workflows_215:
- new_status_id: 6
- role_id: 2
- old_status_id: 1
- id: 215
- tracker_id: 3
-workflows_242:
- new_status_id: 3
- role_id: 3
- old_status_id: 1
- id: 242
- tracker_id: 3
-workflows_028:
- new_status_id: 3
- role_id: 1
- old_status_id: 6
- id: 28
- tracker_id: 1
-workflows_054:
- new_status_id: 4
- role_id: 2
- old_status_id: 5
- id: 54
- tracker_id: 1
-workflows_081:
- new_status_id: 1
- role_id: 3
- old_status_id: 5
- id: 81
- tracker_id: 1
-workflows_109:
- new_status_id: 5
- role_id: 1
- old_status_id: 4
- id: 109
- tracker_id: 2
-workflows_135:
- new_status_id: 6
- role_id: 2
- old_status_id: 3
- id: 135
- tracker_id: 2
-workflows_161:
- new_status_id: 1
- role_id: 3
- old_status_id: 3
- id: 161
- tracker_id: 2
-workflows_216:
- new_status_id: 1
- role_id: 2
- old_status_id: 2
- id: 216
- tracker_id: 3
-workflows_243:
- new_status_id: 4
- role_id: 3
- old_status_id: 1
- id: 243
- tracker_id: 3
-workflows_029:
- new_status_id: 4
- role_id: 1
- old_status_id: 6
- id: 29
- tracker_id: 1
-workflows_055:
- new_status_id: 6
- role_id: 2
- old_status_id: 5
- id: 55
- tracker_id: 1
-workflows_082:
- new_status_id: 2
- role_id: 3
- old_status_id: 5
- id: 82
- tracker_id: 1
-workflows_136:
- new_status_id: 1
- role_id: 2
- old_status_id: 4
- id: 136
- tracker_id: 2
-workflows_162:
- new_status_id: 2
- role_id: 3
- old_status_id: 3
- id: 162
- tracker_id: 2
-workflows_217:
- new_status_id: 3
- role_id: 2
- old_status_id: 2
- id: 217
- tracker_id: 3
-workflows_270:
- new_status_id: 5
- role_id: 3
- old_status_id: 6
- id: 270
- tracker_id: 3
-workflows_244:
- new_status_id: 5
- role_id: 3
- old_status_id: 1
- id: 244
- tracker_id: 3
-workflows_056:
- new_status_id: 1
- role_id: 2
- old_status_id: 6
- id: 56
- tracker_id: 1
-workflows_137:
- new_status_id: 2
- role_id: 2
- old_status_id: 4
- id: 137
- tracker_id: 2
-workflows_163:
- new_status_id: 4
- role_id: 3
- old_status_id: 3
- id: 163
- tracker_id: 2
-workflows_190:
- new_status_id: 6
- role_id: 1
- old_status_id: 2
- id: 190
- tracker_id: 3
-workflows_218:
- new_status_id: 4
- role_id: 2
- old_status_id: 2
- id: 218
- tracker_id: 3
-workflows_245:
- new_status_id: 6
- role_id: 3
- old_status_id: 1
- id: 245
- tracker_id: 3
-workflows_057:
- new_status_id: 2
- role_id: 2
- old_status_id: 6
- id: 57
- tracker_id: 1
-workflows_083:
- new_status_id: 3
- role_id: 3
- old_status_id: 5
- id: 83
- tracker_id: 1
-workflows_138:
- new_status_id: 3
- role_id: 2
- old_status_id: 4
- id: 138
- tracker_id: 2
-workflows_164:
- new_status_id: 5
- role_id: 3
- old_status_id: 3
- id: 164
- tracker_id: 2
-workflows_191:
- new_status_id: 1
- role_id: 1
- old_status_id: 3
- id: 191
- tracker_id: 3
-workflows_219:
- new_status_id: 5
- role_id: 2
- old_status_id: 2
- id: 219
- tracker_id: 3
-workflows_246:
- new_status_id: 1
- role_id: 3
- old_status_id: 2
- id: 246
- tracker_id: 3
-workflows_058:
- new_status_id: 3
- role_id: 2
- old_status_id: 6
- id: 58
- tracker_id: 1
-workflows_084:
- new_status_id: 4
- role_id: 3
- old_status_id: 5
- id: 84
- tracker_id: 1
-workflows_139:
- new_status_id: 5
- role_id: 2
- old_status_id: 4
- id: 139
- tracker_id: 2
-workflows_165:
- new_status_id: 6
- role_id: 3
- old_status_id: 3
- id: 165
- tracker_id: 2
-workflows_192:
- new_status_id: 2
- role_id: 1
- old_status_id: 3
- id: 192
- tracker_id: 3
-workflows_247:
- new_status_id: 3
- role_id: 3
- old_status_id: 2
- id: 247
- tracker_id: 3
-workflows_059:
- new_status_id: 4
- role_id: 2
- old_status_id: 6
- id: 59
- tracker_id: 1
-workflows_085:
- new_status_id: 6
- role_id: 3
- old_status_id: 5
- id: 85
- tracker_id: 1
-workflows_166:
- new_status_id: 1
- role_id: 3
- old_status_id: 4
- id: 166
- tracker_id: 2
-workflows_248:
- new_status_id: 4
- role_id: 3
- old_status_id: 2
- id: 248
- tracker_id: 3
-workflows_086:
- new_status_id: 1
- role_id: 3
- old_status_id: 6
- id: 86
- tracker_id: 1
-workflows_167:
- new_status_id: 2
- role_id: 3
- old_status_id: 4
- id: 167
- tracker_id: 2
-workflows_193:
- new_status_id: 4
- role_id: 1
- old_status_id: 3
- id: 193
- tracker_id: 3
-workflows_249:
- new_status_id: 5
- role_id: 3
- old_status_id: 2
- id: 249
- tracker_id: 3
-workflows_087:
- new_status_id: 2
- role_id: 3
- old_status_id: 6
- id: 87
- tracker_id: 1
-workflows_168:
- new_status_id: 3
- role_id: 3
- old_status_id: 4
- id: 168
- tracker_id: 2
-workflows_194:
- new_status_id: 5
- role_id: 1
- old_status_id: 3
- id: 194
- tracker_id: 3
-workflows_088:
- new_status_id: 3
- role_id: 3
- old_status_id: 6
- id: 88
- tracker_id: 1
-workflows_169:
- new_status_id: 5
- role_id: 3
- old_status_id: 4
- id: 169
- tracker_id: 2
-workflows_195:
- new_status_id: 6
- role_id: 1
- old_status_id: 3
- id: 195
- tracker_id: 3
-workflows_089:
- new_status_id: 4
- role_id: 3
- old_status_id: 6
- id: 89
- tracker_id: 1
-workflows_196:
- new_status_id: 1
- role_id: 1
- old_status_id: 4
- id: 196
- tracker_id: 3
-workflows_197:
- new_status_id: 2
- role_id: 1
- old_status_id: 4
- id: 197
- tracker_id: 3
-workflows_198:
- new_status_id: 3
- role_id: 1
- old_status_id: 4
- id: 198
- tracker_id: 3
-workflows_199:
- new_status_id: 5
- role_id: 1
- old_status_id: 4
- id: 199
- tracker_id: 3
-workflows_010:
- new_status_id: 6
- role_id: 1
- old_status_id: 2
- id: 10
- tracker_id: 1
-workflows_011:
- new_status_id: 1
- role_id: 1
- old_status_id: 3
- id: 11
- tracker_id: 1
-workflows_012:
- new_status_id: 2
- role_id: 1
- old_status_id: 3
- id: 12
- tracker_id: 1
-workflows_200:
- new_status_id: 6
- role_id: 1
- old_status_id: 4
- id: 200
- tracker_id: 3
-workflows_013:
- new_status_id: 4
- role_id: 1
- old_status_id: 3
- id: 13
- tracker_id: 1
-workflows_120:
- new_status_id: 5
- role_id: 1
- old_status_id: 6
- id: 120
- tracker_id: 2
-workflows_201:
- new_status_id: 1
- role_id: 1
- old_status_id: 5
- id: 201
- tracker_id: 3
-workflows_040:
- new_status_id: 6
- role_id: 2
- old_status_id: 2
- id: 40
- tracker_id: 1
-workflows_121:
- new_status_id: 2
- role_id: 2
- old_status_id: 1
- id: 121
- tracker_id: 2
-workflows_202:
- new_status_id: 2
- role_id: 1
- old_status_id: 5
- id: 202
- tracker_id: 3
-workflows_014:
- new_status_id: 5
- role_id: 1
- old_status_id: 3
- id: 14
- tracker_id: 1
-workflows_041:
- new_status_id: 1
- role_id: 2
- old_status_id: 3
- id: 41
- tracker_id: 1
-workflows_122:
- new_status_id: 3
- role_id: 2
- old_status_id: 1
- id: 122
- tracker_id: 2
-workflows_203:
- new_status_id: 3
- role_id: 1
- old_status_id: 5
- id: 203
- tracker_id: 3
-workflows_015:
- new_status_id: 6
- role_id: 1
- old_status_id: 3
- id: 15
- tracker_id: 1
-workflows_230:
- new_status_id: 6
- role_id: 2
- old_status_id: 4
- id: 230
- tracker_id: 3
-workflows_123:
- new_status_id: 4
- role_id: 2
- old_status_id: 1
- id: 123
- tracker_id: 2
-workflows_204:
- new_status_id: 4
- role_id: 1
- old_status_id: 5
- id: 204
- tracker_id: 3
-workflows_016:
- new_status_id: 1
- role_id: 1
- old_status_id: 4
- id: 16
- tracker_id: 1
-workflows_042:
- new_status_id: 2
- role_id: 2
- old_status_id: 3
- id: 42
- tracker_id: 1
-workflows_231:
- new_status_id: 1
- role_id: 2
- old_status_id: 5
- id: 231
- tracker_id: 3
-workflows_070:
- new_status_id: 6
- role_id: 3
- old_status_id: 2
- id: 70
- tracker_id: 1
-workflows_124:
- new_status_id: 5
- role_id: 2
- old_status_id: 1
- id: 124
- tracker_id: 2
-workflows_150:
- new_status_id: 5
- role_id: 2
- old_status_id: 6
- id: 150
- tracker_id: 2
-workflows_205:
- new_status_id: 6
- role_id: 1
- old_status_id: 5
- id: 205
- tracker_id: 3
-workflows_017:
- new_status_id: 2
- role_id: 1
- old_status_id: 4
- id: 17
- tracker_id: 1
-workflows_043:
- new_status_id: 4
- role_id: 2
- old_status_id: 3
- id: 43
- tracker_id: 1
-workflows_232:
- new_status_id: 2
- role_id: 2
- old_status_id: 5
- id: 232
- tracker_id: 3
-workflows_125:
- new_status_id: 6
- role_id: 2
- old_status_id: 1
- id: 125
- tracker_id: 2
-workflows_151:
- new_status_id: 2
- role_id: 3
- old_status_id: 1
- id: 151
- tracker_id: 2
-workflows_206:
- new_status_id: 1
- role_id: 1
- old_status_id: 6
- id: 206
- tracker_id: 3
-workflows_018:
- new_status_id: 3
- role_id: 1
- old_status_id: 4
- id: 18
- tracker_id: 1
-workflows_044:
- new_status_id: 5
- role_id: 2
- old_status_id: 3
- id: 44
- tracker_id: 1
-workflows_071:
- new_status_id: 1
- role_id: 3
- old_status_id: 3
- id: 71
- tracker_id: 1
-workflows_233:
- new_status_id: 3
- role_id: 2
- old_status_id: 5
- id: 233
- tracker_id: 3
-workflows_126:
- new_status_id: 1
- role_id: 2
- old_status_id: 2
- id: 126
- tracker_id: 2
-workflows_152:
- new_status_id: 3
- role_id: 3
- old_status_id: 1
- id: 152
- tracker_id: 2
-workflows_207:
- new_status_id: 2
- role_id: 1
- old_status_id: 6
- id: 207
- tracker_id: 3
-workflows_019:
- new_status_id: 5
- role_id: 1
- old_status_id: 4
- id: 19
- tracker_id: 1
-workflows_045:
- new_status_id: 6
- role_id: 2
- old_status_id: 3
- id: 45
- tracker_id: 1
-workflows_260:
- new_status_id: 6
- role_id: 3
- old_status_id: 4
- id: 260
- tracker_id: 3
-workflows_234:
- new_status_id: 4
- role_id: 2
- old_status_id: 5
- id: 234
- tracker_id: 3
-workflows_127:
- new_status_id: 3
- role_id: 2
- old_status_id: 2
- id: 127
- tracker_id: 2
-workflows_153:
- new_status_id: 4
- role_id: 3
- old_status_id: 1
- id: 153
- tracker_id: 2
-workflows_180:
- new_status_id: 5
- role_id: 3
- old_status_id: 6
- id: 180
- tracker_id: 2
-workflows_208:
- new_status_id: 3
- role_id: 1
- old_status_id: 6
- id: 208
- tracker_id: 3
-workflows_046:
- new_status_id: 1
- role_id: 2
- old_status_id: 4
- id: 46
- tracker_id: 1
-workflows_072:
- new_status_id: 2
- role_id: 3
- old_status_id: 3
- id: 72
- tracker_id: 1
-workflows_261:
- new_status_id: 1
- role_id: 3
- old_status_id: 5
- id: 261
- tracker_id: 3
-workflows_235:
- new_status_id: 6
- role_id: 2
- old_status_id: 5
- id: 235
- tracker_id: 3
-workflows_154:
- new_status_id: 5
- role_id: 3
- old_status_id: 1
- id: 154
- tracker_id: 2
-workflows_181:
- new_status_id: 2
- role_id: 1
- old_status_id: 1
- id: 181
- tracker_id: 3
-workflows_209:
- new_status_id: 4
- role_id: 1
- old_status_id: 6
- id: 209
- tracker_id: 3
-workflows_047:
- new_status_id: 2
- role_id: 2
- old_status_id: 4
- id: 47
- tracker_id: 1
-workflows_073:
- new_status_id: 4
- role_id: 3
- old_status_id: 3
- id: 73
- tracker_id: 1
-workflows_128:
- new_status_id: 4
- role_id: 2
- old_status_id: 2
- id: 128
- tracker_id: 2
-workflows_262:
- new_status_id: 2
- role_id: 3
- old_status_id: 5
- id: 262
- tracker_id: 3
-workflows_236:
- new_status_id: 1
- role_id: 2
- old_status_id: 6
- id: 236
- tracker_id: 3
-workflows_155:
- new_status_id: 6
- role_id: 3
- old_status_id: 1
- id: 155
- tracker_id: 2
-workflows_048:
- new_status_id: 3
- role_id: 2
- old_status_id: 4
- id: 48
- tracker_id: 1
-workflows_074:
- new_status_id: 5
- role_id: 3
- old_status_id: 3
- id: 74
- tracker_id: 1
-workflows_129:
- new_status_id: 5
- role_id: 2
- old_status_id: 2
- id: 129
- tracker_id: 2
-workflows_263:
- new_status_id: 3
- role_id: 3
- old_status_id: 5
- id: 263
- tracker_id: 3
-workflows_237:
- new_status_id: 2
- role_id: 2
- old_status_id: 6
- id: 237
- tracker_id: 3
-workflows_182:
- new_status_id: 3
- role_id: 1
- old_status_id: 1
- id: 182
- tracker_id: 3
-workflows_049:
- new_status_id: 5
- role_id: 2
- old_status_id: 4
- id: 49
- tracker_id: 1
-workflows_075:
- new_status_id: 6
- role_id: 3
- old_status_id: 3
- id: 75
- tracker_id: 1
-workflows_156:
- new_status_id: 1
- role_id: 3
- old_status_id: 2
- id: 156
- tracker_id: 2
-workflows_264:
- new_status_id: 4
- role_id: 3
- old_status_id: 5
- id: 264
- tracker_id: 3
-workflows_238:
- new_status_id: 3
- role_id: 2
- old_status_id: 6
- id: 238
- tracker_id: 3
-workflows_183:
- new_status_id: 4
- role_id: 1
- old_status_id: 1
- id: 183
- tracker_id: 3
-workflows_076:
- new_status_id: 1
- role_id: 3
- old_status_id: 4
- id: 76
- tracker_id: 1
-workflows_157:
- new_status_id: 3
- role_id: 3
- old_status_id: 2
- id: 157
- tracker_id: 2
-workflows_265:
- new_status_id: 6
- role_id: 3
- old_status_id: 5
- id: 265
- tracker_id: 3
-workflows_239:
- new_status_id: 4
- role_id: 2
- old_status_id: 6
- id: 239
- tracker_id: 3
-workflows_077:
- new_status_id: 2
- role_id: 3
- old_status_id: 4
- id: 77
- tracker_id: 1
-workflows_158:
- new_status_id: 4
- role_id: 3
- old_status_id: 2
- id: 158
- tracker_id: 2
-workflows_184:
- new_status_id: 5
- role_id: 1
- old_status_id: 1
- id: 184
- tracker_id: 3
-workflows_266:
- new_status_id: 1
- role_id: 3
- old_status_id: 6
- id: 266
- tracker_id: 3
-workflows_078:
- new_status_id: 3
- role_id: 3
- old_status_id: 4
- id: 78
- tracker_id: 1
-workflows_159:
- new_status_id: 5
- role_id: 3
- old_status_id: 2
- id: 159
- tracker_id: 2
-workflows_185:
- new_status_id: 6
- role_id: 1
- old_status_id: 1
- id: 185
- tracker_id: 3
-workflows_267:
- new_status_id: 2
- role_id: 3
- old_status_id: 6
- id: 267
- tracker_id: 3
-workflows_079:
- new_status_id: 5
- role_id: 3
- old_status_id: 4
- id: 79
- tracker_id: 1
-workflows_186:
- new_status_id: 1
- role_id: 1
- old_status_id: 2
- id: 186
- tracker_id: 3
-workflows_268:
- new_status_id: 3
- role_id: 3
- old_status_id: 6
- id: 268
- tracker_id: 3
-workflows_187:
- new_status_id: 3
- role_id: 1
- old_status_id: 2
- id: 187
- tracker_id: 3
-workflows_269:
- new_status_id: 4
- role_id: 3
- old_status_id: 6
- id: 269
- tracker_id: 3
-workflows_188:
- new_status_id: 4
- role_id: 1
- old_status_id: 2
- id: 188
- tracker_id: 3
+---
+workflows_189:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 2
+ id: 189
+ tracker_id: 3
+workflows_001:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 1
+ id: 1
+ tracker_id: 1
+workflows_002:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 1
+ id: 2
+ tracker_id: 1
+workflows_003:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 1
+ id: 3
+ tracker_id: 1
+workflows_110:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 4
+ id: 110
+ tracker_id: 2
+workflows_004:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 1
+ id: 4
+ tracker_id: 1
+workflows_030:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 6
+ id: 30
+ tracker_id: 1
+workflows_111:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 5
+ id: 111
+ tracker_id: 2
+workflows_005:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 1
+ id: 5
+ tracker_id: 1
+workflows_031:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 1
+ id: 31
+ tracker_id: 1
+workflows_112:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 5
+ id: 112
+ tracker_id: 2
+workflows_006:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 2
+ id: 6
+ tracker_id: 1
+workflows_032:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 1
+ id: 32
+ tracker_id: 1
+workflows_113:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 5
+ id: 113
+ tracker_id: 2
+workflows_220:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 2
+ id: 220
+ tracker_id: 3
+workflows_007:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 2
+ id: 7
+ tracker_id: 1
+workflows_033:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 1
+ id: 33
+ tracker_id: 1
+workflows_060:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 6
+ id: 60
+ tracker_id: 1
+workflows_114:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 5
+ id: 114
+ tracker_id: 2
+workflows_140:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 4
+ id: 140
+ tracker_id: 2
+workflows_221:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 3
+ id: 221
+ tracker_id: 3
+workflows_008:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 2
+ id: 8
+ tracker_id: 1
+workflows_034:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 1
+ id: 34
+ tracker_id: 1
+workflows_115:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 5
+ id: 115
+ tracker_id: 2
+workflows_141:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 5
+ id: 141
+ tracker_id: 2
+workflows_222:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 3
+ id: 222
+ tracker_id: 3
+workflows_223:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 3
+ id: 223
+ tracker_id: 3
+workflows_009:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 2
+ id: 9
+ tracker_id: 1
+workflows_035:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 1
+ id: 35
+ tracker_id: 1
+workflows_061:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 1
+ id: 61
+ tracker_id: 1
+workflows_116:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 6
+ id: 116
+ tracker_id: 2
+workflows_142:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 5
+ id: 142
+ tracker_id: 2
+workflows_250:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 2
+ id: 250
+ tracker_id: 3
+workflows_224:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 3
+ id: 224
+ tracker_id: 3
+workflows_036:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 2
+ id: 36
+ tracker_id: 1
+workflows_062:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 1
+ id: 62
+ tracker_id: 1
+workflows_117:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 6
+ id: 117
+ tracker_id: 2
+workflows_143:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 5
+ id: 143
+ tracker_id: 2
+workflows_170:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 4
+ id: 170
+ tracker_id: 2
+workflows_251:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 3
+ id: 251
+ tracker_id: 3
+workflows_225:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 3
+ id: 225
+ tracker_id: 3
+workflows_063:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 1
+ id: 63
+ tracker_id: 1
+workflows_090:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 6
+ id: 90
+ tracker_id: 1
+workflows_118:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 6
+ id: 118
+ tracker_id: 2
+workflows_144:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 5
+ id: 144
+ tracker_id: 2
+workflows_252:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 3
+ id: 252
+ tracker_id: 3
+workflows_226:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 4
+ id: 226
+ tracker_id: 3
+workflows_038:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 2
+ id: 38
+ tracker_id: 1
+workflows_064:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 1
+ id: 64
+ tracker_id: 1
+workflows_091:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 1
+ id: 91
+ tracker_id: 2
+workflows_119:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 6
+ id: 119
+ tracker_id: 2
+workflows_145:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 5
+ id: 145
+ tracker_id: 2
+workflows_171:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 5
+ id: 171
+ tracker_id: 2
+workflows_253:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 3
+ id: 253
+ tracker_id: 3
+workflows_227:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 4
+ id: 227
+ tracker_id: 3
+workflows_039:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 2
+ id: 39
+ tracker_id: 1
+workflows_065:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 1
+ id: 65
+ tracker_id: 1
+workflows_092:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 1
+ id: 92
+ tracker_id: 2
+workflows_146:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 6
+ id: 146
+ tracker_id: 2
+workflows_172:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 5
+ id: 172
+ tracker_id: 2
+workflows_254:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 3
+ id: 254
+ tracker_id: 3
+workflows_228:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 4
+ id: 228
+ tracker_id: 3
+workflows_066:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 2
+ id: 66
+ tracker_id: 1
+workflows_093:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 1
+ id: 93
+ tracker_id: 2
+workflows_147:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 6
+ id: 147
+ tracker_id: 2
+workflows_173:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 5
+ id: 173
+ tracker_id: 2
+workflows_255:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 3
+ id: 255
+ tracker_id: 3
+workflows_229:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 4
+ id: 229
+ tracker_id: 3
+workflows_067:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 2
+ id: 67
+ tracker_id: 1
+workflows_148:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 6
+ id: 148
+ tracker_id: 2
+workflows_174:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 5
+ id: 174
+ tracker_id: 2
+workflows_256:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 4
+ id: 256
+ tracker_id: 3
+workflows_068:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 2
+ id: 68
+ tracker_id: 1
+workflows_094:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 1
+ id: 94
+ tracker_id: 2
+workflows_149:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 6
+ id: 149
+ tracker_id: 2
+workflows_175:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 5
+ id: 175
+ tracker_id: 2
+workflows_257:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 4
+ id: 257
+ tracker_id: 3
+workflows_069:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 2
+ id: 69
+ tracker_id: 1
+workflows_095:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 1
+ id: 95
+ tracker_id: 2
+workflows_176:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 6
+ id: 176
+ tracker_id: 2
+workflows_258:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 4
+ id: 258
+ tracker_id: 3
+workflows_096:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 2
+ id: 96
+ tracker_id: 2
+workflows_177:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 6
+ id: 177
+ tracker_id: 2
+workflows_259:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 4
+ id: 259
+ tracker_id: 3
+workflows_097:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 2
+ id: 97
+ tracker_id: 2
+workflows_178:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 6
+ id: 178
+ tracker_id: 2
+workflows_098:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 2
+ id: 98
+ tracker_id: 2
+workflows_179:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 6
+ id: 179
+ tracker_id: 2
+workflows_099:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 2
+ id: 99
+ tracker_id: 2
+workflows_100:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 2
+ id: 100
+ tracker_id: 2
+workflows_020:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 4
+ id: 20
+ tracker_id: 1
+workflows_101:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 3
+ id: 101
+ tracker_id: 2
+workflows_021:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 5
+ id: 21
+ tracker_id: 1
+workflows_102:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 3
+ id: 102
+ tracker_id: 2
+workflows_210:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 6
+ id: 210
+ tracker_id: 3
+workflows_022:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 5
+ id: 22
+ tracker_id: 1
+workflows_103:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 3
+ id: 103
+ tracker_id: 2
+workflows_023:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 5
+ id: 23
+ tracker_id: 1
+workflows_104:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 3
+ id: 104
+ tracker_id: 2
+workflows_130:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 2
+ id: 130
+ tracker_id: 2
+workflows_211:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 1
+ id: 211
+ tracker_id: 3
+workflows_024:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 5
+ id: 24
+ tracker_id: 1
+workflows_050:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 4
+ id: 50
+ tracker_id: 1
+workflows_105:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 3
+ id: 105
+ tracker_id: 2
+workflows_131:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 3
+ id: 131
+ tracker_id: 2
+workflows_212:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 1
+ id: 212
+ tracker_id: 3
+workflows_025:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 5
+ id: 25
+ tracker_id: 1
+workflows_051:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 5
+ id: 51
+ tracker_id: 1
+workflows_106:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 4
+ id: 106
+ tracker_id: 2
+workflows_132:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 3
+ id: 132
+ tracker_id: 2
+workflows_213:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 1
+ id: 213
+ tracker_id: 3
+workflows_240:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 6
+ id: 240
+ tracker_id: 3
+workflows_026:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 6
+ id: 26
+ tracker_id: 1
+workflows_052:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 5
+ id: 52
+ tracker_id: 1
+workflows_107:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 4
+ id: 107
+ tracker_id: 2
+workflows_133:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 3
+ id: 133
+ tracker_id: 2
+workflows_214:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 1
+ id: 214
+ tracker_id: 3
+workflows_241:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 1
+ id: 241
+ tracker_id: 3
+workflows_027:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 6
+ id: 27
+ tracker_id: 1
+workflows_053:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 5
+ id: 53
+ tracker_id: 1
+workflows_080:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 4
+ id: 80
+ tracker_id: 1
+workflows_108:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 4
+ id: 108
+ tracker_id: 2
+workflows_134:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 3
+ id: 134
+ tracker_id: 2
+workflows_160:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 2
+ id: 160
+ tracker_id: 2
+workflows_215:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 1
+ id: 215
+ tracker_id: 3
+workflows_242:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 1
+ id: 242
+ tracker_id: 3
+workflows_028:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 6
+ id: 28
+ tracker_id: 1
+workflows_054:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 5
+ id: 54
+ tracker_id: 1
+workflows_081:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 5
+ id: 81
+ tracker_id: 1
+workflows_109:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 4
+ id: 109
+ tracker_id: 2
+workflows_135:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 3
+ id: 135
+ tracker_id: 2
+workflows_161:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 3
+ id: 161
+ tracker_id: 2
+workflows_216:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 2
+ id: 216
+ tracker_id: 3
+workflows_243:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 1
+ id: 243
+ tracker_id: 3
+workflows_029:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 6
+ id: 29
+ tracker_id: 1
+workflows_055:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 5
+ id: 55
+ tracker_id: 1
+workflows_082:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 5
+ id: 82
+ tracker_id: 1
+workflows_136:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 4
+ id: 136
+ tracker_id: 2
+workflows_162:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 3
+ id: 162
+ tracker_id: 2
+workflows_217:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 2
+ id: 217
+ tracker_id: 3
+workflows_270:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 6
+ id: 270
+ tracker_id: 3
+workflows_244:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 1
+ id: 244
+ tracker_id: 3
+workflows_056:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 6
+ id: 56
+ tracker_id: 1
+workflows_137:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 4
+ id: 137
+ tracker_id: 2
+workflows_163:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 3
+ id: 163
+ tracker_id: 2
+workflows_190:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 2
+ id: 190
+ tracker_id: 3
+workflows_218:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 2
+ id: 218
+ tracker_id: 3
+workflows_245:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 1
+ id: 245
+ tracker_id: 3
+workflows_057:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 6
+ id: 57
+ tracker_id: 1
+workflows_083:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 5
+ id: 83
+ tracker_id: 1
+workflows_138:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 4
+ id: 138
+ tracker_id: 2
+workflows_164:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 3
+ id: 164
+ tracker_id: 2
+workflows_191:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 3
+ id: 191
+ tracker_id: 3
+workflows_219:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 2
+ id: 219
+ tracker_id: 3
+workflows_246:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 2
+ id: 246
+ tracker_id: 3
+workflows_058:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 6
+ id: 58
+ tracker_id: 1
+workflows_084:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 5
+ id: 84
+ tracker_id: 1
+workflows_139:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 4
+ id: 139
+ tracker_id: 2
+workflows_165:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 3
+ id: 165
+ tracker_id: 2
+workflows_192:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 3
+ id: 192
+ tracker_id: 3
+workflows_247:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 2
+ id: 247
+ tracker_id: 3
+workflows_059:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 6
+ id: 59
+ tracker_id: 1
+workflows_085:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 5
+ id: 85
+ tracker_id: 1
+workflows_166:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 4
+ id: 166
+ tracker_id: 2
+workflows_248:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 2
+ id: 248
+ tracker_id: 3
+workflows_086:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 6
+ id: 86
+ tracker_id: 1
+workflows_167:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 4
+ id: 167
+ tracker_id: 2
+workflows_193:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 3
+ id: 193
+ tracker_id: 3
+workflows_249:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 2
+ id: 249
+ tracker_id: 3
+workflows_087:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 6
+ id: 87
+ tracker_id: 1
+workflows_168:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 4
+ id: 168
+ tracker_id: 2
+workflows_194:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 3
+ id: 194
+ tracker_id: 3
+workflows_088:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 6
+ id: 88
+ tracker_id: 1
+workflows_169:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 4
+ id: 169
+ tracker_id: 2
+workflows_195:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 3
+ id: 195
+ tracker_id: 3
+workflows_089:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 6
+ id: 89
+ tracker_id: 1
+workflows_196:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 4
+ id: 196
+ tracker_id: 3
+workflows_197:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 4
+ id: 197
+ tracker_id: 3
+workflows_198:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 4
+ id: 198
+ tracker_id: 3
+workflows_199:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 4
+ id: 199
+ tracker_id: 3
+workflows_010:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 2
+ id: 10
+ tracker_id: 1
+workflows_011:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 3
+ id: 11
+ tracker_id: 1
+workflows_012:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 3
+ id: 12
+ tracker_id: 1
+workflows_200:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 4
+ id: 200
+ tracker_id: 3
+workflows_013:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 3
+ id: 13
+ tracker_id: 1
+workflows_120:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 6
+ id: 120
+ tracker_id: 2
+workflows_201:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 5
+ id: 201
+ tracker_id: 3
+workflows_040:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 2
+ id: 40
+ tracker_id: 1
+workflows_121:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 1
+ id: 121
+ tracker_id: 2
+workflows_202:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 5
+ id: 202
+ tracker_id: 3
+workflows_014:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 3
+ id: 14
+ tracker_id: 1
+workflows_041:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 3
+ id: 41
+ tracker_id: 1
+workflows_122:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 1
+ id: 122
+ tracker_id: 2
+workflows_203:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 5
+ id: 203
+ tracker_id: 3
+workflows_015:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 3
+ id: 15
+ tracker_id: 1
+workflows_230:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 4
+ id: 230
+ tracker_id: 3
+workflows_123:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 1
+ id: 123
+ tracker_id: 2
+workflows_204:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 5
+ id: 204
+ tracker_id: 3
+workflows_016:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 4
+ id: 16
+ tracker_id: 1
+workflows_042:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 3
+ id: 42
+ tracker_id: 1
+workflows_231:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 5
+ id: 231
+ tracker_id: 3
+workflows_070:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 2
+ id: 70
+ tracker_id: 1
+workflows_124:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 1
+ id: 124
+ tracker_id: 2
+workflows_150:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 6
+ id: 150
+ tracker_id: 2
+workflows_205:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 5
+ id: 205
+ tracker_id: 3
+workflows_017:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 4
+ id: 17
+ tracker_id: 1
+workflows_043:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 3
+ id: 43
+ tracker_id: 1
+workflows_232:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 5
+ id: 232
+ tracker_id: 3
+workflows_125:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 1
+ id: 125
+ tracker_id: 2
+workflows_151:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 1
+ id: 151
+ tracker_id: 2
+workflows_206:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 6
+ id: 206
+ tracker_id: 3
+workflows_018:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 4
+ id: 18
+ tracker_id: 1
+workflows_044:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 3
+ id: 44
+ tracker_id: 1
+workflows_071:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 3
+ id: 71
+ tracker_id: 1
+workflows_233:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 5
+ id: 233
+ tracker_id: 3
+workflows_126:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 2
+ id: 126
+ tracker_id: 2
+workflows_152:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 1
+ id: 152
+ tracker_id: 2
+workflows_207:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 6
+ id: 207
+ tracker_id: 3
+workflows_019:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 4
+ id: 19
+ tracker_id: 1
+workflows_045:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 3
+ id: 45
+ tracker_id: 1
+workflows_260:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 4
+ id: 260
+ tracker_id: 3
+workflows_234:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 5
+ id: 234
+ tracker_id: 3
+workflows_127:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 2
+ id: 127
+ tracker_id: 2
+workflows_153:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 1
+ id: 153
+ tracker_id: 2
+workflows_180:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 6
+ id: 180
+ tracker_id: 2
+workflows_208:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 6
+ id: 208
+ tracker_id: 3
+workflows_046:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 4
+ id: 46
+ tracker_id: 1
+workflows_072:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 3
+ id: 72
+ tracker_id: 1
+workflows_261:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 5
+ id: 261
+ tracker_id: 3
+workflows_235:
+ new_status_id: 6
+ role_id: 2
+ old_status_id: 5
+ id: 235
+ tracker_id: 3
+workflows_154:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 1
+ id: 154
+ tracker_id: 2
+workflows_181:
+ new_status_id: 2
+ role_id: 1
+ old_status_id: 1
+ id: 181
+ tracker_id: 3
+workflows_209:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 6
+ id: 209
+ tracker_id: 3
+workflows_047:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 4
+ id: 47
+ tracker_id: 1
+workflows_073:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 3
+ id: 73
+ tracker_id: 1
+workflows_128:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 2
+ id: 128
+ tracker_id: 2
+workflows_262:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 5
+ id: 262
+ tracker_id: 3
+workflows_236:
+ new_status_id: 1
+ role_id: 2
+ old_status_id: 6
+ id: 236
+ tracker_id: 3
+workflows_155:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 1
+ id: 155
+ tracker_id: 2
+workflows_048:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 4
+ id: 48
+ tracker_id: 1
+workflows_074:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 3
+ id: 74
+ tracker_id: 1
+workflows_129:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 2
+ id: 129
+ tracker_id: 2
+workflows_263:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 5
+ id: 263
+ tracker_id: 3
+workflows_237:
+ new_status_id: 2
+ role_id: 2
+ old_status_id: 6
+ id: 237
+ tracker_id: 3
+workflows_182:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 1
+ id: 182
+ tracker_id: 3
+workflows_049:
+ new_status_id: 5
+ role_id: 2
+ old_status_id: 4
+ id: 49
+ tracker_id: 1
+workflows_075:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 3
+ id: 75
+ tracker_id: 1
+workflows_156:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 2
+ id: 156
+ tracker_id: 2
+workflows_264:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 5
+ id: 264
+ tracker_id: 3
+workflows_238:
+ new_status_id: 3
+ role_id: 2
+ old_status_id: 6
+ id: 238
+ tracker_id: 3
+workflows_183:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 1
+ id: 183
+ tracker_id: 3
+workflows_076:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 4
+ id: 76
+ tracker_id: 1
+workflows_157:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 2
+ id: 157
+ tracker_id: 2
+workflows_265:
+ new_status_id: 6
+ role_id: 3
+ old_status_id: 5
+ id: 265
+ tracker_id: 3
+workflows_239:
+ new_status_id: 4
+ role_id: 2
+ old_status_id: 6
+ id: 239
+ tracker_id: 3
+workflows_077:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 4
+ id: 77
+ tracker_id: 1
+workflows_158:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 2
+ id: 158
+ tracker_id: 2
+workflows_184:
+ new_status_id: 5
+ role_id: 1
+ old_status_id: 1
+ id: 184
+ tracker_id: 3
+workflows_266:
+ new_status_id: 1
+ role_id: 3
+ old_status_id: 6
+ id: 266
+ tracker_id: 3
+workflows_078:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 4
+ id: 78
+ tracker_id: 1
+workflows_159:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 2
+ id: 159
+ tracker_id: 2
+workflows_185:
+ new_status_id: 6
+ role_id: 1
+ old_status_id: 1
+ id: 185
+ tracker_id: 3
+workflows_267:
+ new_status_id: 2
+ role_id: 3
+ old_status_id: 6
+ id: 267
+ tracker_id: 3
+workflows_079:
+ new_status_id: 5
+ role_id: 3
+ old_status_id: 4
+ id: 79
+ tracker_id: 1
+workflows_186:
+ new_status_id: 1
+ role_id: 1
+ old_status_id: 2
+ id: 186
+ tracker_id: 3
+workflows_268:
+ new_status_id: 3
+ role_id: 3
+ old_status_id: 6
+ id: 268
+ tracker_id: 3
+workflows_187:
+ new_status_id: 3
+ role_id: 1
+ old_status_id: 2
+ id: 187
+ tracker_id: 3
+workflows_269:
+ new_status_id: 4
+ role_id: 3
+ old_status_id: 6
+ id: 269
+ tracker_id: 3
+workflows_188:
+ new_status_id: 4
+ role_id: 1
+ old_status_id: 2
+ id: 188
+ tracker_id: 3
diff --git a/test/functional/custom_fields_controller_test.rb b/test/functional/custom_fields_controller_test.rb
index 5b27446bd..1caf98fd9 100644
--- a/test/functional/custom_fields_controller_test.rb
+++ b/test/functional/custom_fields_controller_test.rb
@@ -1,61 +1,61 @@
-# Redmine - project management software
-# Copyright (C) 2006-2009 Jean-Philippe Lang
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-require File.dirname(__FILE__) + '/../test_helper'
-require 'custom_fields_controller'
-
-# Re-raise errors caught by the controller.
-class CustomFieldsController; def rescue_action(e) raise e end; end
-
-class CustomFieldsControllerTest < ActionController::TestCase
- fixtures :custom_fields, :trackers, :users
-
- def setup
- @controller = CustomFieldsController.new
- @request = ActionController::TestRequest.new
- @response = ActionController::TestResponse.new
- @request.session[:user_id] = 1
- end
-
- def test_post_new_list_custom_field
- assert_difference 'CustomField.count' do
- post :new, :type => "IssueCustomField",
- :custom_field => {:name => "test_post_new_list",
- :default_value => "",
- :min_length => "0",
- :searchable => "0",
- :regexp => "",
- :is_for_all => "1",
- :possible_values => "0.1\n0.2\n",
- :max_length => "0",
- :is_filter => "0",
- :is_required =>"0",
- :field_format => "list",
- :tracker_ids => ["1", ""]}
- end
- assert_redirected_to '/custom_fields?tab=IssueCustomField'
- field = IssueCustomField.find_by_name('test_post_new_list')
- assert_not_nil field
- assert_equal ["0.1", "0.2"], field.possible_values
- assert_equal 1, field.trackers.size
- end
-
- def test_invalid_custom_field_class_should_redirect_to_list
- get :new, :type => 'UnknownCustomField'
- assert_redirected_to '/custom_fields'
- end
-end
+# Redmine - project management software
+# Copyright (C) 2006-2009 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+require File.dirname(__FILE__) + '/../test_helper'
+require 'custom_fields_controller'
+
+# Re-raise errors caught by the controller.
+class CustomFieldsController; def rescue_action(e) raise e end; end
+
+class CustomFieldsControllerTest < ActionController::TestCase
+ fixtures :custom_fields, :trackers, :users
+
+ def setup
+ @controller = CustomFieldsController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+ @request.session[:user_id] = 1
+ end
+
+ def test_post_new_list_custom_field
+ assert_difference 'CustomField.count' do
+ post :new, :type => "IssueCustomField",
+ :custom_field => {:name => "test_post_new_list",
+ :default_value => "",
+ :min_length => "0",
+ :searchable => "0",
+ :regexp => "",
+ :is_for_all => "1",
+ :possible_values => "0.1\n0.2\n",
+ :max_length => "0",
+ :is_filter => "0",
+ :is_required =>"0",
+ :field_format => "list",
+ :tracker_ids => ["1", ""]}
+ end
+ assert_redirected_to '/custom_fields?tab=IssueCustomField'
+ field = IssueCustomField.find_by_name('test_post_new_list')
+ assert_not_nil field
+ assert_equal ["0.1", "0.2"], field.possible_values
+ assert_equal 1, field.trackers.size
+ end
+
+ def test_invalid_custom_field_class_should_redirect_to_list
+ get :new, :type => 'UnknownCustomField'
+ assert_redirected_to '/custom_fields'
+ end
+end
diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb
index 812ae19a2..1009a46ab 100644
--- a/test/functional/projects_controller_test.rb
+++ b/test/functional/projects_controller_test.rb
@@ -1,577 +1,577 @@
-# Redmine - project management software
-# Copyright (C) 2006-2008 Jean-Philippe Lang
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-require File.dirname(__FILE__) + '/../test_helper'
-require 'projects_controller'
-
-# Re-raise errors caught by the controller.
-class ProjectsController; def rescue_action(e) raise e end; end
-
-class ProjectsControllerTest < ActionController::TestCase
- fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
- :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
- :attachments
-
- def setup
- @controller = ProjectsController.new
- @request = ActionController::TestRequest.new
- @response = ActionController::TestResponse.new
- @request.session[:user_id] = nil
- Setting.default_language = 'en'
- end
-
- def test_index_routing
- assert_routing(
- {:method => :get, :path => '/projects'},
- :controller => 'projects', :action => 'index'
- )
- end
-
- def test_index
- get :index
- assert_response :success
- assert_template 'index'
- assert_not_nil assigns(:projects)
-
- assert_tag :ul, :child => {:tag => 'li',
- :descendant => {:tag => 'a', :content => 'eCookbook'},
- :child => { :tag => 'ul',
- :descendant => { :tag => 'a',
- :content => 'Child of private child'
- }
- }
- }
-
- assert_no_tag :a, :content => /Private child of eCookbook/
- end
-
- def test_index_atom_routing
- assert_routing(
- {:method => :get, :path => '/projects.atom'},
- :controller => 'projects', :action => 'index', :format => 'atom'
- )
- end
-
- def test_index_atom
- get :index, :format => 'atom'
- assert_response :success
- assert_template 'common/feed.atom.rxml'
- assert_select 'feed>title', :text => 'Redmine: Latest projects'
- assert_select 'feed>entry', :count => Project.count(:conditions => Project.visible_by(User.current))
- end
-
- def test_add_routing
- assert_routing(
- {:method => :get, :path => '/projects/new'},
- :controller => 'projects', :action => 'add'
- )
- assert_recognizes(
- {:controller => 'projects', :action => 'add'},
- {:method => :post, :path => '/projects/new'}
- )
- assert_recognizes(
- {:controller => 'projects', :action => 'add'},
- {:method => :post, :path => '/projects'}
- )
- end
-
- def test_get_add
- @request.session[:user_id] = 1
- get :add
- assert_response :success
- assert_template 'add'
- end
-
- def test_get_add_by_non_admin
- @request.session[:user_id] = 2
- get :add
- assert_response :success
- assert_template 'add'
- end
-
- def test_post_add
- @request.session[:user_id] = 1
- post :add, :project => { :name => "blog",
- :description => "weblog",
- :identifier => "blog",
- :is_public => 1,
- :custom_field_values => { '3' => 'Beta' }
- }
- assert_redirected_to '/projects/blog/settings'
-
- project = Project.find_by_name('blog')
- assert_kind_of Project, project
- assert_equal 'weblog', project.description
- assert_equal true, project.is_public?
- end
-
- def test_post_add_by_non_admin
- @request.session[:user_id] = 2
- post :add, :project => { :name => "blog",
- :description => "weblog",
- :identifier => "blog",
- :is_public => 1,
- :custom_field_values => { '3' => 'Beta' }
- }
- assert_redirected_to '/projects/blog/settings'
-
- project = Project.find_by_name('blog')
- assert_kind_of Project, project
- assert_equal 'weblog', project.description
- assert_equal true, project.is_public?
-
- # User should be added as a project member
- assert User.find(2).member_of?(project)
- assert_equal 1, project.members.size
- end
-
- def test_show_routing
- assert_routing(
- {:method => :get, :path => '/projects/test'},
- :controller => 'projects', :action => 'show', :id => 'test'
- )
- end
-
- def test_show_by_id
- get :show, :id => 1
- assert_response :success
- assert_template 'show'
- assert_not_nil assigns(:project)
- end
-
- def test_show_by_identifier
- get :show, :id => 'ecookbook'
- assert_response :success
- assert_template 'show'
- assert_not_nil assigns(:project)
- assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
- end
-
- def test_show_should_not_fail_when_custom_values_are_nil
- project = Project.find_by_identifier('ecookbook')
- project.custom_values.first.update_attribute(:value, nil)
- get :show, :id => 'ecookbook'
- assert_response :success
- assert_template 'show'
- assert_not_nil assigns(:project)
- assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
- end
-
- def test_private_subprojects_hidden
- get :show, :id => 'ecookbook'
- assert_response :success
- assert_template 'show'
- assert_no_tag :tag => 'a', :content => /Private child/
- end
-
- def test_private_subprojects_visible
- @request.session[:user_id] = 2 # manager who is a member of the private subproject
- get :show, :id => 'ecookbook'
- assert_response :success
- assert_template 'show'
- assert_tag :tag => 'a', :content => /Private child/
- end
-
- def test_settings_routing
- assert_routing(
- {:method => :get, :path => '/projects/4223/settings'},
- :controller => 'projects', :action => 'settings', :id => '4223'
- )
- assert_routing(
- {:method => :get, :path => '/projects/4223/settings/members'},
- :controller => 'projects', :action => 'settings', :id => '4223', :tab => 'members'
- )
- end
-
- def test_settings
- @request.session[:user_id] = 2 # manager
- get :settings, :id => 1
- assert_response :success
- assert_template 'settings'
- end
-
- def test_edit
- @request.session[:user_id] = 2 # manager
- post :edit, :id => 1, :project => {:name => 'Test changed name',
- :issue_custom_field_ids => ['']}
- assert_redirected_to 'projects/ecookbook/settings'
- project = Project.find(1)
- assert_equal 'Test changed name', project.name
- end
-
- def test_add_version_routing
- assert_routing(
- {:method => :get, :path => 'projects/64/versions/new'},
- :controller => 'projects', :action => 'add_version', :id => '64'
- )
- assert_routing(
- #TODO: use PUT
- {:method => :post, :path => 'projects/64/versions/new'},
- :controller => 'projects', :action => 'add_version', :id => '64'
- )
- end
-
- def test_add_issue_category_routing
- assert_routing(
- {:method => :get, :path => 'projects/test/categories/new'},
- :controller => 'projects', :action => 'add_issue_category', :id => 'test'
- )
- assert_routing(
- #TODO: use PUT and update form
- {:method => :post, :path => 'projects/64/categories/new'},
- :controller => 'projects', :action => 'add_issue_category', :id => '64'
- )
- end
-
- def test_destroy_routing
- assert_routing(
- {:method => :get, :path => '/projects/567/destroy'},
- :controller => 'projects', :action => 'destroy', :id => '567'
- )
- assert_routing(
- #TODO: use DELETE and update form
- {:method => :post, :path => 'projects/64/destroy'},
- :controller => 'projects', :action => 'destroy', :id => '64'
- )
- end
-
- def test_get_destroy
- @request.session[:user_id] = 1 # admin
- get :destroy, :id => 1
- assert_response :success
- assert_template 'destroy'
- assert_not_nil Project.find_by_id(1)
- end
-
- def test_post_destroy
- @request.session[:user_id] = 1 # admin
- post :destroy, :id => 1, :confirm => 1
- assert_redirected_to 'admin/projects'
- assert_nil Project.find_by_id(1)
- end
-
- def test_add_file
- set_tmp_attachments_directory
- @request.session[:user_id] = 2
- Setting.notified_events = ['file_added']
- ActionMailer::Base.deliveries.clear
-
- assert_difference 'Attachment.count' do
- post :add_file, :id => 1, :version_id => '',
- :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
- end
- assert_redirected_to 'projects/ecookbook/files'
- a = Attachment.find(:first, :order => 'created_on DESC')
- assert_equal 'testfile.txt', a.filename
- assert_equal Project.find(1), a.container
-
- mail = ActionMailer::Base.deliveries.last
- assert_kind_of TMail::Mail, mail
- assert_equal "[eCookbook] New file", mail.subject
- assert mail.body.include?('testfile.txt')
- end
-
- def test_add_file_routing
- assert_routing(
- {:method => :get, :path => '/projects/33/files/new'},
- :controller => 'projects', :action => 'add_file', :id => '33'
- )
- assert_routing(
- {:method => :post, :path => '/projects/33/files/new'},
- :controller => 'projects', :action => 'add_file', :id => '33'
- )
- end
-
- def test_add_version_file
- set_tmp_attachments_directory
- @request.session[:user_id] = 2
- Setting.notified_events = ['file_added']
-
- assert_difference 'Attachment.count' do
- post :add_file, :id => 1, :version_id => '2',
- :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
- end
- assert_redirected_to 'projects/ecookbook/files'
- a = Attachment.find(:first, :order => 'created_on DESC')
- assert_equal 'testfile.txt', a.filename
- assert_equal Version.find(2), a.container
- end
-
- def test_list_files
- get :list_files, :id => 1
- assert_response :success
- assert_template 'list_files'
- assert_not_nil assigns(:containers)
-
- # file attached to the project
- assert_tag :a, :content => 'project_file.zip',
- :attributes => { :href => '/attachments/download/8/project_file.zip' }
-
- # file attached to a project's version
- assert_tag :a, :content => 'version_file.zip',
- :attributes => { :href => '/attachments/download/9/version_file.zip' }
- end
-
- def test_list_files_routing
- assert_routing(
- {:method => :get, :path => '/projects/33/files'},
- :controller => 'projects', :action => 'list_files', :id => '33'
- )
- end
-
- def test_changelog_routing
- assert_routing(
- {:method => :get, :path => '/projects/44/changelog'},
- :controller => 'projects', :action => 'changelog', :id => '44'
- )
- end
-
- def test_changelog
- get :changelog, :id => 1
- assert_response :success
- assert_template 'changelog'
- assert_not_nil assigns(:versions)
- end
-
- def test_roadmap_routing
- assert_routing(
- {:method => :get, :path => 'projects/33/roadmap'},
- :controller => 'projects', :action => 'roadmap', :id => '33'
- )
- end
-
- def test_roadmap
- get :roadmap, :id => 1
- assert_response :success
- assert_template 'roadmap'
- assert_not_nil assigns(:versions)
- # Version with no date set appears
- assert assigns(:versions).include?(Version.find(3))
- # Completed version doesn't appear
- assert !assigns(:versions).include?(Version.find(1))
- end
-
- def test_roadmap_with_completed_versions
- get :roadmap, :id => 1, :completed => 1
- assert_response :success
- assert_template 'roadmap'
- assert_not_nil assigns(:versions)
- # Version with no date set appears
- assert assigns(:versions).include?(Version.find(3))
- # Completed version appears
- assert assigns(:versions).include?(Version.find(1))
- end
-
- def test_project_activity_routing
- assert_routing(
- {:method => :get, :path => '/projects/1/activity'},
- :controller => 'projects', :action => 'activity', :id => '1'
- )
- end
-
- def test_project_activity_atom_routing
- assert_routing(
- {:method => :get, :path => '/projects/1/activity.atom'},
- :controller => 'projects', :action => 'activity', :id => '1', :format => 'atom'
- )
- end
-
- def test_project_activity
- get :activity, :id => 1, :with_subprojects => 0
- assert_response :success
- assert_template 'activity'
- assert_not_nil assigns(:events_by_day)
-
- assert_tag :tag => "h3",
- :content => /#{2.days.ago.to_date.day}/,
- :sibling => { :tag => "dl",
- :child => { :tag => "dt",
- :attributes => { :class => /issue-edit/ },
- :child => { :tag => "a",
- :content => /(#{IssueStatus.find(2).name})/,
- }
- }
- }
- end
-
- def test_previous_project_activity
- get :activity, :id => 1, :from => 3.days.ago.to_date
- assert_response :success
- assert_template 'activity'
- assert_not_nil assigns(:events_by_day)
-
- assert_tag :tag => "h3",
- :content => /#{3.day.ago.to_date.day}/,
- :sibling => { :tag => "dl",
- :child => { :tag => "dt",
- :attributes => { :class => /issue/ },
- :child => { :tag => "a",
- :content => /#{Issue.find(1).subject}/,
- }
- }
- }
- end
-
- def test_global_activity_routing
- assert_routing({:method => :get, :path => '/activity'}, :controller => 'projects', :action => 'activity', :id => nil)
- end
-
- def test_global_activity
- get :activity
- assert_response :success
- assert_template 'activity'
- assert_not_nil assigns(:events_by_day)
-
- assert_tag :tag => "h3",
- :content => /#{5.day.ago.to_date.day}/,
- :sibling => { :tag => "dl",
- :child => { :tag => "dt",
- :attributes => { :class => /issue/ },
- :child => { :tag => "a",
- :content => /#{Issue.find(5).subject}/,
- }
- }
- }
- end
-
- def test_user_activity
- get :activity, :user_id => 2
- assert_response :success
- assert_template 'activity'
- assert_not_nil assigns(:events_by_day)
-
- assert_tag :tag => "h3",
- :content => /#{3.day.ago.to_date.day}/,
- :sibling => { :tag => "dl",
- :child => { :tag => "dt",
- :attributes => { :class => /issue/ },
- :child => { :tag => "a",
- :content => /#{Issue.find(1).subject}/,
- }
- }
- }
- end
-
- def test_global_activity_atom_routing
- assert_routing({:method => :get, :path => '/activity.atom'}, :controller => 'projects', :action => 'activity', :id => nil, :format => 'atom')
- end
-
- def test_activity_atom_feed
- get :activity, :format => 'atom'
- assert_response :success
- assert_template 'common/feed.atom.rxml'
- end
-
- def test_archive_routing
- assert_routing(
- #TODO: use PUT to project path and modify form
- {:method => :post, :path => 'projects/64/archive'},
- :controller => 'projects', :action => 'archive', :id => '64'
- )
- end
-
- def test_archive
- @request.session[:user_id] = 1 # admin
- post :archive, :id => 1
- assert_redirected_to 'admin/projects'
- assert !Project.find(1).active?
- end
-
- def test_unarchive_routing
- assert_routing(
- #TODO: use PUT to project path and modify form
- {:method => :post, :path => '/projects/567/unarchive'},
- :controller => 'projects', :action => 'unarchive', :id => '567'
- )
- end
-
- def test_unarchive
- @request.session[:user_id] = 1 # admin
- Project.find(1).archive
- post :unarchive, :id => 1
- assert_redirected_to 'admin/projects'
- assert Project.find(1).active?
- end
-
- def test_project_breadcrumbs_should_be_limited_to_3_ancestors
- CustomField.delete_all
- parent = nil
- 6.times do |i|
- p = Project.create!(:name => "Breadcrumbs #{i}", :identifier => "breadcrumbs-#{i}")
- p.set_parent!(parent)
- get :show, :id => p
- assert_tag :h1, :parent => { :attributes => {:id => 'header'}},
- :children => { :count => [i, 3].min,
- :only => { :tag => 'a' } }
-
- parent = p
- end
- end
-
- def test_copy_with_project
- @request.session[:user_id] = 1 # admin
- get :copy, :id => 1
- assert_response :success
- assert_template 'copy'
- assert assigns(:project)
- assert_equal Project.find(1).description, assigns(:project).description
- assert_nil assigns(:project).id
- end
-
- def test_copy_without_project
- @request.session[:user_id] = 1 # admin
- get :copy
- assert_response :redirect
- assert_redirected_to :controller => 'admin', :action => 'projects'
- end
-
- def test_jump_should_redirect_to_active_tab
- get :show, :id => 1, :jump => 'issues'
- assert_redirected_to 'projects/ecookbook/issues'
- end
-
- def test_jump_should_not_redirect_to_inactive_tab
- get :show, :id => 3, :jump => 'documents'
- assert_response :success
- assert_template 'show'
- end
-
- def test_jump_should_not_redirect_to_unknown_tab
- get :show, :id => 3, :jump => 'foobar'
- assert_response :success
- assert_template 'show'
- end
-
- # A hook that is manually registered later
- class ProjectBasedTemplate < Redmine::Hook::ViewListener
- def view_layouts_base_html_head(context)
- # Adds a project stylesheet
- stylesheet_link_tag(context[:project].identifier) if context[:project]
- end
- end
- # Don't use this hook now
- Redmine::Hook.clear_listeners
-
- def test_hook_response
- Redmine::Hook.add_listener(ProjectBasedTemplate)
- get :show, :id => 1
- assert_tag :tag => 'link', :attributes => {:href => '/stylesheets/ecookbook.css'},
- :parent => {:tag => 'head'}
-
- Redmine::Hook.clear_listeners
- end
-end
+# Redmine - project management software
+# Copyright (C) 2006-2008 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+require File.dirname(__FILE__) + '/../test_helper'
+require 'projects_controller'
+
+# Re-raise errors caught by the controller.
+class ProjectsController; def rescue_action(e) raise e end; end
+
+class ProjectsControllerTest < ActionController::TestCase
+ fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
+ :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
+ :attachments
+
+ def setup
+ @controller = ProjectsController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+ @request.session[:user_id] = nil
+ Setting.default_language = 'en'
+ end
+
+ def test_index_routing
+ assert_routing(
+ {:method => :get, :path => '/projects'},
+ :controller => 'projects', :action => 'index'
+ )
+ end
+
+ def test_index
+ get :index
+ assert_response :success
+ assert_template 'index'
+ assert_not_nil assigns(:projects)
+
+ assert_tag :ul, :child => {:tag => 'li',
+ :descendant => {:tag => 'a', :content => 'eCookbook'},
+ :child => { :tag => 'ul',
+ :descendant => { :tag => 'a',
+ :content => 'Child of private child'
+ }
+ }
+ }
+
+ assert_no_tag :a, :content => /Private child of eCookbook/
+ end
+
+ def test_index_atom_routing
+ assert_routing(
+ {:method => :get, :path => '/projects.atom'},
+ :controller => 'projects', :action => 'index', :format => 'atom'
+ )
+ end
+
+ def test_index_atom
+ get :index, :format => 'atom'
+ assert_response :success
+ assert_template 'common/feed.atom.rxml'
+ assert_select 'feed>title', :text => 'Redmine: Latest projects'
+ assert_select 'feed>entry', :count => Project.count(:conditions => Project.visible_by(User.current))
+ end
+
+ def test_add_routing
+ assert_routing(
+ {:method => :get, :path => '/projects/new'},
+ :controller => 'projects', :action => 'add'
+ )
+ assert_recognizes(
+ {:controller => 'projects', :action => 'add'},
+ {:method => :post, :path => '/projects/new'}
+ )
+ assert_recognizes(
+ {:controller => 'projects', :action => 'add'},
+ {:method => :post, :path => '/projects'}
+ )
+ end
+
+ def test_get_add
+ @request.session[:user_id] = 1
+ get :add
+ assert_response :success
+ assert_template 'add'
+ end
+
+ def test_get_add_by_non_admin
+ @request.session[:user_id] = 2
+ get :add
+ assert_response :success
+ assert_template 'add'
+ end
+
+ def test_post_add
+ @request.session[:user_id] = 1
+ post :add, :project => { :name => "blog",
+ :description => "weblog",
+ :identifier => "blog",
+ :is_public => 1,
+ :custom_field_values => { '3' => 'Beta' }
+ }
+ assert_redirected_to '/projects/blog/settings'
+
+ project = Project.find_by_name('blog')
+ assert_kind_of Project, project
+ assert_equal 'weblog', project.description
+ assert_equal true, project.is_public?
+ end
+
+ def test_post_add_by_non_admin
+ @request.session[:user_id] = 2
+ post :add, :project => { :name => "blog",
+ :description => "weblog",
+ :identifier => "blog",
+ :is_public => 1,
+ :custom_field_values => { '3' => 'Beta' }
+ }
+ assert_redirected_to '/projects/blog/settings'
+
+ project = Project.find_by_name('blog')
+ assert_kind_of Project, project
+ assert_equal 'weblog', project.description
+ assert_equal true, project.is_public?
+
+ # User should be added as a project member
+ assert User.find(2).member_of?(project)
+ assert_equal 1, project.members.size
+ end
+
+ def test_show_routing
+ assert_routing(
+ {:method => :get, :path => '/projects/test'},
+ :controller => 'projects', :action => 'show', :id => 'test'
+ )
+ end
+
+ def test_show_by_id
+ get :show, :id => 1
+ assert_response :success
+ assert_template 'show'
+ assert_not_nil assigns(:project)
+ end
+
+ def test_show_by_identifier
+ get :show, :id => 'ecookbook'
+ assert_response :success
+ assert_template 'show'
+ assert_not_nil assigns(:project)
+ assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
+ end
+
+ def test_show_should_not_fail_when_custom_values_are_nil
+ project = Project.find_by_identifier('ecookbook')
+ project.custom_values.first.update_attribute(:value, nil)
+ get :show, :id => 'ecookbook'
+ assert_response :success
+ assert_template 'show'
+ assert_not_nil assigns(:project)
+ assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
+ end
+
+ def test_private_subprojects_hidden
+ get :show, :id => 'ecookbook'
+ assert_response :success
+ assert_template 'show'
+ assert_no_tag :tag => 'a', :content => /Private child/
+ end
+
+ def test_private_subprojects_visible
+ @request.session[:user_id] = 2 # manager who is a member of the private subproject
+ get :show, :id => 'ecookbook'
+ assert_response :success
+ assert_template 'show'
+ assert_tag :tag => 'a', :content => /Private child/
+ end
+
+ def test_settings_routing
+ assert_routing(
+ {:method => :get, :path => '/projects/4223/settings'},
+ :controller => 'projects', :action => 'settings', :id => '4223'
+ )
+ assert_routing(
+ {:method => :get, :path => '/projects/4223/settings/members'},
+ :controller => 'projects', :action => 'settings', :id => '4223', :tab => 'members'
+ )
+ end
+
+ def test_settings
+ @request.session[:user_id] = 2 # manager
+ get :settings, :id => 1
+ assert_response :success
+ assert_template 'settings'
+ end
+
+ def test_edit
+ @request.session[:user_id] = 2 # manager
+ post :edit, :id => 1, :project => {:name => 'Test changed name',
+ :issue_custom_field_ids => ['']}
+ assert_redirected_to 'projects/ecookbook/settings'
+ project = Project.find(1)
+ assert_equal 'Test changed name', project.name
+ end
+
+ def test_add_version_routing
+ assert_routing(
+ {:method => :get, :path => 'projects/64/versions/new'},
+ :controller => 'projects', :action => 'add_version', :id => '64'
+ )
+ assert_routing(
+ #TODO: use PUT
+ {:method => :post, :path => 'projects/64/versions/new'},
+ :controller => 'projects', :action => 'add_version', :id => '64'
+ )
+ end
+
+ def test_add_issue_category_routing
+ assert_routing(
+ {:method => :get, :path => 'projects/test/categories/new'},
+ :controller => 'projects', :action => 'add_issue_category', :id => 'test'
+ )
+ assert_routing(
+ #TODO: use PUT and update form
+ {:method => :post, :path => 'projects/64/categories/new'},
+ :controller => 'projects', :action => 'add_issue_category', :id => '64'
+ )
+ end
+
+ def test_destroy_routing
+ assert_routing(
+ {:method => :get, :path => '/projects/567/destroy'},
+ :controller => 'projects', :action => 'destroy', :id => '567'
+ )
+ assert_routing(
+ #TODO: use DELETE and update form
+ {:method => :post, :path => 'projects/64/destroy'},
+ :controller => 'projects', :action => 'destroy', :id => '64'
+ )
+ end
+
+ def test_get_destroy
+ @request.session[:user_id] = 1 # admin
+ get :destroy, :id => 1
+ assert_response :success
+ assert_template 'destroy'
+ assert_not_nil Project.find_by_id(1)
+ end
+
+ def test_post_destroy
+ @request.session[:user_id] = 1 # admin
+ post :destroy, :id => 1, :confirm => 1
+ assert_redirected_to 'admin/projects'
+ assert_nil Project.find_by_id(1)
+ end
+
+ def test_add_file
+ set_tmp_attachments_directory
+ @request.session[:user_id] = 2
+ Setting.notified_events = ['file_added']
+ ActionMailer::Base.deliveries.clear
+
+ assert_difference 'Attachment.count' do
+ post :add_file, :id => 1, :version_id => '',
+ :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
+ end
+ assert_redirected_to 'projects/ecookbook/files'
+ a = Attachment.find(:first, :order => 'created_on DESC')
+ assert_equal 'testfile.txt', a.filename
+ assert_equal Project.find(1), a.container
+
+ mail = ActionMailer::Base.deliveries.last
+ assert_kind_of TMail::Mail, mail
+ assert_equal "[eCookbook] New file", mail.subject
+ assert mail.body.include?('testfile.txt')
+ end
+
+ def test_add_file_routing
+ assert_routing(
+ {:method => :get, :path => '/projects/33/files/new'},
+ :controller => 'projects', :action => 'add_file', :id => '33'
+ )
+ assert_routing(
+ {:method => :post, :path => '/projects/33/files/new'},
+ :controller => 'projects', :action => 'add_file', :id => '33'
+ )
+ end
+
+ def test_add_version_file
+ set_tmp_attachments_directory
+ @request.session[:user_id] = 2
+ Setting.notified_events = ['file_added']
+
+ assert_difference 'Attachment.count' do
+ post :add_file, :id => 1, :version_id => '2',
+ :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
+ end
+ assert_redirected_to 'projects/ecookbook/files'
+ a = Attachment.find(:first, :order => 'created_on DESC')
+ assert_equal 'testfile.txt', a.filename
+ assert_equal Version.find(2), a.container
+ end
+
+ def test_list_files
+ get :list_files, :id => 1
+ assert_response :success
+ assert_template 'list_files'
+ assert_not_nil assigns(:containers)
+
+ # file attached to the project
+ assert_tag :a, :content => 'project_file.zip',
+ :attributes => { :href => '/attachments/download/8/project_file.zip' }
+
+ # file attached to a project's version
+ assert_tag :a, :content => 'version_file.zip',
+ :attributes => { :href => '/attachments/download/9/version_file.zip' }
+ end
+
+ def test_list_files_routing
+ assert_routing(
+ {:method => :get, :path => '/projects/33/files'},
+ :controller => 'projects', :action => 'list_files', :id => '33'
+ )
+ end
+
+ def test_changelog_routing
+ assert_routing(
+ {:method => :get, :path => '/projects/44/changelog'},
+ :controller => 'projects', :action => 'changelog', :id => '44'
+ )
+ end
+
+ def test_changelog
+ get :changelog, :id => 1
+ assert_response :success
+ assert_template 'changelog'
+ assert_not_nil assigns(:versions)
+ end
+
+ def test_roadmap_routing
+ assert_routing(
+ {:method => :get, :path => 'projects/33/roadmap'},
+ :controller => 'projects', :action => 'roadmap', :id => '33'
+ )
+ end
+
+ def test_roadmap
+ get :roadmap, :id => 1
+ assert_response :success
+ assert_template 'roadmap'
+ assert_not_nil assigns(:versions)
+ # Version with no date set appears
+ assert assigns(:versions).include?(Version.find(3))
+ # Completed version doesn't appear
+ assert !assigns(:versions).include?(Version.find(1))
+ end
+
+ def test_roadmap_with_completed_versions
+ get :roadmap, :id => 1, :completed => 1
+ assert_response :success
+ assert_template 'roadmap'
+ assert_not_nil assigns(:versions)
+ # Version with no date set appears
+ assert assigns(:versions).include?(Version.find(3))
+ # Completed version appears
+ assert assigns(:versions).include?(Version.find(1))
+ end
+
+ def test_project_activity_routing
+ assert_routing(
+ {:method => :get, :path => '/projects/1/activity'},
+ :controller => 'projects', :action => 'activity', :id => '1'
+ )
+ end
+
+ def test_project_activity_atom_routing
+ assert_routing(
+ {:method => :get, :path => '/projects/1/activity.atom'},
+ :controller => 'projects', :action => 'activity', :id => '1', :format => 'atom'
+ )
+ end
+
+ def test_project_activity
+ get :activity, :id => 1, :with_subprojects => 0
+ assert_response :success
+ assert_template 'activity'
+ assert_not_nil assigns(:events_by_day)
+
+ assert_tag :tag => "h3",
+ :content => /#{2.days.ago.to_date.day}/,
+ :sibling => { :tag => "dl",
+ :child => { :tag => "dt",
+ :attributes => { :class => /issue-edit/ },
+ :child => { :tag => "a",
+ :content => /(#{IssueStatus.find(2).name})/,
+ }
+ }
+ }
+ end
+
+ def test_previous_project_activity
+ get :activity, :id => 1, :from => 3.days.ago.to_date
+ assert_response :success
+ assert_template 'activity'
+ assert_not_nil assigns(:events_by_day)
+
+ assert_tag :tag => "h3",
+ :content => /#{3.day.ago.to_date.day}/,
+ :sibling => { :tag => "dl",
+ :child => { :tag => "dt",
+ :attributes => { :class => /issue/ },
+ :child => { :tag => "a",
+ :content => /#{Issue.find(1).subject}/,
+ }
+ }
+ }
+ end
+
+ def test_global_activity_routing
+ assert_routing({:method => :get, :path => '/activity'}, :controller => 'projects', :action => 'activity', :id => nil)
+ end
+
+ def test_global_activity
+ get :activity
+ assert_response :success
+ assert_template 'activity'
+ assert_not_nil assigns(:events_by_day)
+
+ assert_tag :tag => "h3",
+ :content => /#{5.day.ago.to_date.day}/,
+ :sibling => { :tag => "dl",
+ :child => { :tag => "dt",
+ :attributes => { :class => /issue/ },
+ :child => { :tag => "a",
+ :content => /#{Issue.find(5).subject}/,
+ }
+ }
+ }
+ end
+
+ def test_user_activity
+ get :activity, :user_id => 2
+ assert_response :success
+ assert_template 'activity'
+ assert_not_nil assigns(:events_by_day)
+
+ assert_tag :tag => "h3",
+ :content => /#{3.day.ago.to_date.day}/,
+ :sibling => { :tag => "dl",
+ :child => { :tag => "dt",
+ :attributes => { :class => /issue/ },
+ :child => { :tag => "a",
+ :content => /#{Issue.find(1).subject}/,
+ }
+ }
+ }
+ end
+
+ def test_global_activity_atom_routing
+ assert_routing({:method => :get, :path => '/activity.atom'}, :controller => 'projects', :action => 'activity', :id => nil, :format => 'atom')
+ end
+
+ def test_activity_atom_feed
+ get :activity, :format => 'atom'
+ assert_response :success
+ assert_template 'common/feed.atom.rxml'
+ end
+
+ def test_archive_routing
+ assert_routing(
+ #TODO: use PUT to project path and modify form
+ {:method => :post, :path => 'projects/64/archive'},
+ :controller => 'projects', :action => 'archive', :id => '64'
+ )
+ end
+
+ def test_archive
+ @request.session[:user_id] = 1 # admin
+ post :archive, :id => 1
+ assert_redirected_to 'admin/projects'
+ assert !Project.find(1).active?
+ end
+
+ def test_unarchive_routing
+ assert_routing(
+ #TODO: use PUT to project path and modify form
+ {:method => :post, :path => '/projects/567/unarchive'},
+ :controller => 'projects', :action => 'unarchive', :id => '567'
+ )
+ end
+
+ def test_unarchive
+ @request.session[:user_id] = 1 # admin
+ Project.find(1).archive
+ post :unarchive, :id => 1
+ assert_redirected_to 'admin/projects'
+ assert Project.find(1).active?
+ end
+
+ def test_project_breadcrumbs_should_be_limited_to_3_ancestors
+ CustomField.delete_all
+ parent = nil
+ 6.times do |i|
+ p = Project.create!(:name => "Breadcrumbs #{i}", :identifier => "breadcrumbs-#{i}")
+ p.set_parent!(parent)
+ get :show, :id => p
+ assert_tag :h1, :parent => { :attributes => {:id => 'header'}},
+ :children => { :count => [i, 3].min,
+ :only => { :tag => 'a' } }
+
+ parent = p
+ end
+ end
+
+ def test_copy_with_project
+ @request.session[:user_id] = 1 # admin
+ get :copy, :id => 1
+ assert_response :success
+ assert_template 'copy'
+ assert assigns(:project)
+ assert_equal Project.find(1).description, assigns(:project).description
+ assert_nil assigns(:project).id
+ end
+
+ def test_copy_without_project
+ @request.session[:user_id] = 1 # admin
+ get :copy
+ assert_response :redirect
+ assert_redirected_to :controller => 'admin', :action => 'projects'
+ end
+
+ def test_jump_should_redirect_to_active_tab
+ get :show, :id => 1, :jump => 'issues'
+ assert_redirected_to 'projects/ecookbook/issues'
+ end
+
+ def test_jump_should_not_redirect_to_inactive_tab
+ get :show, :id => 3, :jump => 'documents'
+ assert_response :success
+ assert_template 'show'
+ end
+
+ def test_jump_should_not_redirect_to_unknown_tab
+ get :show, :id => 3, :jump => 'foobar'
+ assert_response :success
+ assert_template 'show'
+ end
+
+ # A hook that is manually registered later
+ class ProjectBasedTemplate < Redmine::Hook::ViewListener
+ def view_layouts_base_html_head(context)
+ # Adds a project stylesheet
+ stylesheet_link_tag(context[:project].identifier) if context[:project]
+ end
+ end
+ # Don't use this hook now
+ Redmine::Hook.clear_listeners
+
+ def test_hook_response
+ Redmine::Hook.add_listener(ProjectBasedTemplate)
+ get :show, :id => 1
+ assert_tag :tag => 'link', :attributes => {:href => '/stylesheets/ecookbook.css'},
+ :parent => {:tag => 'head'}
+
+ Redmine::Hook.clear_listeners
+ end
+end
diff --git a/test/unit/helpers/sort_helper_test.rb b/test/unit/helpers/sort_helper_test.rb
index d2aca110a..ee6080306 100644
--- a/test/unit/helpers/sort_helper_test.rb
+++ b/test/unit/helpers/sort_helper_test.rb
@@ -1,85 +1,85 @@
-# Redmine - project management software
-# Copyright (C) 2006-2009 Jean-Philippe Lang
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-require File.dirname(__FILE__) + '/../../test_helper'
-
-class SortHelperTest < HelperTestCase
- include SortHelper
-
- def setup
- @session = nil
- @sort_param = nil
- end
-
- def test_default_sort_clause_with_array
- sort_init 'attr1', 'desc'
- sort_update(['attr1', 'attr2'])
-
- assert_equal 'attr1 DESC', sort_clause
- end
-
- def test_default_sort_clause_with_hash
- sort_init 'attr1', 'desc'
- sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
-
- assert_equal 'table1.attr1 DESC', sort_clause
- end
-
- def test_default_sort_clause_with_multiple_columns
- sort_init 'attr1', 'desc'
- sort_update({'attr1' => ['table1.attr1', 'table1.attr2'], 'attr2' => 'table2.attr2'})
-
- assert_equal 'table1.attr1 DESC, table1.attr2 DESC', sort_clause
- end
-
- def test_params_sort
- @sort_param = 'attr1,attr2:desc'
-
- sort_init 'attr1', 'desc'
- sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
-
- assert_equal 'table1.attr1, table2.attr2 DESC', sort_clause
- assert_equal 'attr1,attr2:desc', @session['foo_bar_sort']
- end
-
- def test_invalid_params_sort
- @sort_param = 'invalid_key'
-
- sort_init 'attr1', 'desc'
- sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
-
- assert_equal 'table1.attr1 DESC', sort_clause
- assert_equal 'attr1:desc', @session['foo_bar_sort']
- end
-
- def test_invalid_order_params_sort
- @sort_param = 'attr1:foo:bar,attr2'
-
- sort_init 'attr1', 'desc'
- sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
-
- assert_equal 'table1.attr1, table2.attr2', sort_clause
- assert_equal 'attr1,attr2', @session['foo_bar_sort']
- end
-
- private
-
- def controller_name; 'foo'; end
- def action_name; 'bar'; end
- def params; {:sort => @sort_param}; end
- def session; @session ||= {}; end
-end
+# Redmine - project management software
+# Copyright (C) 2006-2009 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+require File.dirname(__FILE__) + '/../../test_helper'
+
+class SortHelperTest < HelperTestCase
+ include SortHelper
+
+ def setup
+ @session = nil
+ @sort_param = nil
+ end
+
+ def test_default_sort_clause_with_array
+ sort_init 'attr1', 'desc'
+ sort_update(['attr1', 'attr2'])
+
+ assert_equal 'attr1 DESC', sort_clause
+ end
+
+ def test_default_sort_clause_with_hash
+ sort_init 'attr1', 'desc'
+ sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
+
+ assert_equal 'table1.attr1 DESC', sort_clause
+ end
+
+ def test_default_sort_clause_with_multiple_columns
+ sort_init 'attr1', 'desc'
+ sort_update({'attr1' => ['table1.attr1', 'table1.attr2'], 'attr2' => 'table2.attr2'})
+
+ assert_equal 'table1.attr1 DESC, table1.attr2 DESC', sort_clause
+ end
+
+ def test_params_sort
+ @sort_param = 'attr1,attr2:desc'
+
+ sort_init 'attr1', 'desc'
+ sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
+
+ assert_equal 'table1.attr1, table2.attr2 DESC', sort_clause
+ assert_equal 'attr1,attr2:desc', @session['foo_bar_sort']
+ end
+
+ def test_invalid_params_sort
+ @sort_param = 'invalid_key'
+
+ sort_init 'attr1', 'desc'
+ sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
+
+ assert_equal 'table1.attr1 DESC', sort_clause
+ assert_equal 'attr1:desc', @session['foo_bar_sort']
+ end
+
+ def test_invalid_order_params_sort
+ @sort_param = 'attr1:foo:bar,attr2'
+
+ sort_init 'attr1', 'desc'
+ sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
+
+ assert_equal 'table1.attr1, table2.attr2', sort_clause
+ assert_equal 'attr1,attr2', @session['foo_bar_sort']
+ end
+
+ private
+
+ def controller_name; 'foo'; end
+ def action_name; 'bar'; end
+ def params; {:sort => @sort_param}; end
+ def session; @session ||= {}; end
+end
diff --git a/test/unit/member_test.rb b/test/unit/member_test.rb
index 87e0086d2..41ac48859 100644
--- a/test/unit/member_test.rb
+++ b/test/unit/member_test.rb
@@ -24,21 +24,21 @@ class MemberTest < ActiveSupport::TestCase
@jsmith = Member.find(1)
end
- def test_create
- member = Member.new(:project_id => 1, :user_id => 4, :role_ids => [1, 2])
+ def test_create
+ member = Member.new(:project_id => 1, :user_id => 4, :role_ids => [1, 2])
assert member.save
member.reload
assert_equal 2, member.roles.size
- assert_equal Role.find(1), member.roles.sort.first
- end
+ assert_equal Role.find(1), member.roles.sort.first
+ end
def test_update
- assert_equal "eCookbook", @jsmith.project.name
- assert_equal "Manager", @jsmith.roles.first.name
- assert_equal "jsmith", @jsmith.user.login
-
- @jsmith.mail_notification = !@jsmith.mail_notification
+ assert_equal "eCookbook", @jsmith.project.name
+ assert_equal "Manager", @jsmith.roles.first.name
+ assert_equal "jsmith", @jsmith.user.login
+
+ @jsmith.mail_notification = !@jsmith.mail_notification
assert @jsmith.save
end
@@ -48,24 +48,24 @@ class MemberTest < ActiveSupport::TestCase
assert @jsmith.save
assert_equal 2, @jsmith.reload.roles.size
end
-
- def test_validate
- member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [2])
- # same use can't have more than one membership for a project
+
+ def test_validate
+ member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [2])
+ # same use can't have more than one membership for a project
assert !member.save
member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [])
# must have one role at least
- assert !member.save
- end
-
+ assert !member.save
+ end
+
def test_destroy
assert_difference 'Member.count', -1 do
- assert_difference 'MemberRole.count', -1 do
+ assert_difference 'MemberRole.count', -1 do
@jsmith.destroy
end
end
-
- assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
+
+ assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
end
end
diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb
index c40475e4c..a1eac7138 100644
--- a/test/unit/project_test.rb
+++ b/test/unit/project_test.rb
@@ -1,355 +1,355 @@
-# redMine - project management software
-# Copyright (C) 2006-2007 Jean-Philippe Lang
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-require File.dirname(__FILE__) + '/../test_helper'
-
-class ProjectTest < ActiveSupport::TestCase
- fixtures :projects, :enabled_modules,
- :issues, :issue_statuses, :journals, :journal_details,
- :users, :members, :member_roles, :roles, :projects_trackers, :trackers, :boards,
- :queries
-
- def setup
- @ecookbook = Project.find(1)
- @ecookbook_sub1 = Project.find(3)
- end
-
- def test_truth
- assert_kind_of Project, @ecookbook
- assert_equal "eCookbook", @ecookbook.name
- end
-
- def test_update
- assert_equal "eCookbook", @ecookbook.name
- @ecookbook.name = "eCook"
- assert @ecookbook.save, @ecookbook.errors.full_messages.join("; ")
- @ecookbook.reload
- assert_equal "eCook", @ecookbook.name
- end
-
- def test_validate
- @ecookbook.name = ""
- assert !@ecookbook.save
- assert_equal 1, @ecookbook.errors.count
- assert_equal I18n.translate('activerecord.errors.messages.blank'), @ecookbook.errors.on(:name)
- end
-
- def test_validate_identifier
- to_test = {"abc" => true,
- "ab12" => true,
- "ab-12" => true,
- "12" => false,
- "new" => false}
-
- to_test.each do |identifier, valid|
- p = Project.new
- p.identifier = identifier
- p.valid?
- assert_equal valid, p.errors.on('identifier').nil?
- end
- end
-
- def test_members_should_be_active_users
- Project.all.each do |project|
- assert_nil project.members.detect {|m| !(m.user.is_a?(User) && m.user.active?) }
- end
- end
-
- def test_users_should_be_active_users
- Project.all.each do |project|
- assert_nil project.users.detect {|u| !(u.is_a?(User) && u.active?) }
- end
- end
-
- def test_archive
- user = @ecookbook.members.first.user
- @ecookbook.archive
- @ecookbook.reload
-
- assert !@ecookbook.active?
- assert !user.projects.include?(@ecookbook)
- # Subproject are also archived
- assert !@ecookbook.children.empty?
- assert @ecookbook.descendants.active.empty?
- end
-
- def test_unarchive
- user = @ecookbook.members.first.user
- @ecookbook.archive
- # A subproject of an archived project can not be unarchived
- assert !@ecookbook_sub1.unarchive
-
- # Unarchive project
- assert @ecookbook.unarchive
- @ecookbook.reload
- assert @ecookbook.active?
- assert user.projects.include?(@ecookbook)
- # Subproject can now be unarchived
- @ecookbook_sub1.reload
- assert @ecookbook_sub1.unarchive
- end
-
- def test_destroy
- # 2 active members
- assert_equal 2, @ecookbook.members.size
- # and 1 is locked
- assert_equal 3, Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).size
- # some boards
- assert @ecookbook.boards.any?
-
- @ecookbook.destroy
- # make sure that the project non longer exists
- assert_raise(ActiveRecord::RecordNotFound) { Project.find(@ecookbook.id) }
- # make sure related data was removed
- assert Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?
- assert Board.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?
- end
-
- def test_move_an_orphan_project_to_a_root_project
- sub = Project.find(2)
- sub.set_parent! @ecookbook
- assert_equal @ecookbook.id, sub.parent.id
- @ecookbook.reload
- assert_equal 4, @ecookbook.children.size
- end
-
- def test_move_an_orphan_project_to_a_subproject
- sub = Project.find(2)
- assert sub.set_parent!(@ecookbook_sub1)
- end
-
- def test_move_a_root_project_to_a_project
- sub = @ecookbook
- assert sub.set_parent!(Project.find(2))
- end
-
- def test_should_not_move_a_project_to_its_children
- sub = @ecookbook
- assert !(sub.set_parent!(Project.find(3)))
- end
-
- def test_set_parent_should_add_roots_in_alphabetical_order
- ProjectCustomField.delete_all
- Project.delete_all
- Project.create!(:name => 'Project C', :identifier => 'project-c').set_parent!(nil)
- Project.create!(:name => 'Project B', :identifier => 'project-b').set_parent!(nil)
- Project.create!(:name => 'Project D', :identifier => 'project-d').set_parent!(nil)
- Project.create!(:name => 'Project A', :identifier => 'project-a').set_parent!(nil)
-
- assert_equal 4, Project.count
- assert_equal Project.all.sort_by(&:name), Project.all.sort_by(&:lft)
- end
-
- def test_set_parent_should_add_children_in_alphabetical_order
- ProjectCustomField.delete_all
- parent = Project.create!(:name => 'Parent', :identifier => 'parent')
- Project.create!(:name => 'Project C', :identifier => 'project-c').set_parent!(parent)
- Project.create!(:name => 'Project B', :identifier => 'project-b').set_parent!(parent)
- Project.create!(:name => 'Project D', :identifier => 'project-d').set_parent!(parent)
- Project.create!(:name => 'Project A', :identifier => 'project-a').set_parent!(parent)
-
- parent.reload
- assert_equal 4, parent.children.size
- assert_equal parent.children.sort_by(&:name), parent.children
- end
-
- def test_rebuild_should_sort_children_alphabetically
- ProjectCustomField.delete_all
- parent = Project.create!(:name => 'Parent', :identifier => 'parent')
- Project.create!(:name => 'Project C', :identifier => 'project-c').move_to_child_of(parent)
- Project.create!(:name => 'Project B', :identifier => 'project-b').move_to_child_of(parent)
- Project.create!(:name => 'Project D', :identifier => 'project-d').move_to_child_of(parent)
- Project.create!(:name => 'Project A', :identifier => 'project-a').move_to_child_of(parent)
-
- Project.update_all("lft = NULL, rgt = NULL")
- Project.rebuild!
-
- parent.reload
- assert_equal 4, parent.children.size
- assert_equal parent.children.sort_by(&:name), parent.children
- end
-
- def test_parent
- p = Project.find(6).parent
- assert p.is_a?(Project)
- assert_equal 5, p.id
- end
-
- def test_ancestors
- a = Project.find(6).ancestors
- assert a.first.is_a?(Project)
- assert_equal [1, 5], a.collect(&:id)
- end
-
- def test_root
- r = Project.find(6).root
- assert r.is_a?(Project)
- assert_equal 1, r.id
- end
-
- def test_children
- c = Project.find(1).children
- assert c.first.is_a?(Project)
- assert_equal [5, 3, 4], c.collect(&:id)
- end
-
- def test_descendants
- d = Project.find(1).descendants
- assert d.first.is_a?(Project)
- assert_equal [5, 6, 3, 4], d.collect(&:id)
- end
-
- def test_users_by_role
- users_by_role = Project.find(1).users_by_role
- assert_kind_of Hash, users_by_role
- role = Role.find(1)
- assert_kind_of Array, users_by_role[role]
- assert users_by_role[role].include?(User.find(2))
- end
-
- def test_rolled_up_trackers
- parent = Project.find(1)
- parent.trackers = Tracker.find([1,2])
- child = parent.children.find(3)
-
- assert_equal [1, 2], parent.tracker_ids
- assert_equal [2, 3], child.trackers.collect(&:id)
-
- assert_kind_of Tracker, parent.rolled_up_trackers.first
- assert_equal Tracker.find(1), parent.rolled_up_trackers.first
-
- assert_equal [1, 2, 3], parent.rolled_up_trackers.collect(&:id)
- assert_equal [2, 3], child.rolled_up_trackers.collect(&:id)
- end
-
- def test_rolled_up_trackers_should_ignore_archived_subprojects
- parent = Project.find(1)
- parent.trackers = Tracker.find([1,2])
- child = parent.children.find(3)
- child.trackers = Tracker.find([1,3])
- parent.children.each(&:archive)
-
- assert_equal [1,2], parent.rolled_up_trackers.collect(&:id)
- end
-
- def test_next_identifier
- ProjectCustomField.delete_all
- Project.create!(:name => 'last', :identifier => 'p2008040')
- assert_equal 'p2008041', Project.next_identifier
- end
-
- def test_next_identifier_first_project
- Project.delete_all
- assert_nil Project.next_identifier
- end
-
+# redMine - project management software
+# Copyright (C) 2006-2007 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- def test_enabled_module_names_should_not_recreate_enabled_modules
- project = Project.find(1)
- # Remove one module
- modules = project.enabled_modules.slice(0..-2)
- assert modules.any?
- assert_difference 'EnabledModule.count', -1 do
- project.enabled_module_names = modules.collect(&:name)
- end
- project.reload
- # Ids should be preserved
- assert_equal project.enabled_module_ids.sort, modules.collect(&:id).sort
- end
+require File.dirname(__FILE__) + '/../test_helper'
- def test_copy_from_existing_project
- source_project = Project.find(1)
- copied_project = Project.copy_from(1)
-
- assert copied_project
- # Cleared attributes
- assert copied_project.id.blank?
- assert copied_project.name.blank?
- assert copied_project.identifier.blank?
-
- # Duplicated attributes
- assert_equal source_project.description, copied_project.description
- assert_equal source_project.enabled_modules, copied_project.enabled_modules
- assert_equal source_project.trackers, copied_project.trackers
-
- # Default attributes
- assert_equal 1, copied_project.status
- end
-
- # Context: Project#copy
- def test_copy_should_copy_issues
- # Setup
- ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
- source_project = Project.find(2)
- Project.destroy_all :identifier => "copy-test"
- project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
- project.trackers = source_project.trackers
- assert project.valid?
-
- assert project.issues.empty?
- assert project.copy(source_project)
-
- # Tests
- assert_equal source_project.issues.size, project.issues.size
- project.issues.each do |issue|
- assert issue.valid?
- assert ! issue.assigned_to.blank?
- assert_equal project, issue.project
- end
- end
-
- def test_copy_should_copy_members
- # Setup
- ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
- source_project = Project.find(2)
- project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
- project.trackers = source_project.trackers
- project.enabled_modules = source_project.enabled_modules
- assert project.valid?
-
- assert project.members.empty?
- assert project.copy(source_project)
-
- # Tests
- assert_equal source_project.members.size, project.members.size
- project.members.each do |member|
- assert member
- assert_equal project, member.project
- end
- end
-
- def test_copy_should_copy_project_level_queries
- # Setup
- ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
- source_project = Project.find(2)
- project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
- project.trackers = source_project.trackers
- project.enabled_modules = source_project.enabled_modules
- assert project.valid?
-
- assert project.queries.empty?
- assert project.copy(source_project)
-
- # Tests
- assert_equal source_project.queries.size, project.queries.size
- project.queries.each do |query|
- assert query
- assert_equal project, query.project
- end
- end
-
-end
+class ProjectTest < ActiveSupport::TestCase
+ fixtures :projects, :enabled_modules,
+ :issues, :issue_statuses, :journals, :journal_details,
+ :users, :members, :member_roles, :roles, :projects_trackers, :trackers, :boards,
+ :queries
+
+ def setup
+ @ecookbook = Project.find(1)
+ @ecookbook_sub1 = Project.find(3)
+ end
+
+ def test_truth
+ assert_kind_of Project, @ecookbook
+ assert_equal "eCookbook", @ecookbook.name
+ end
+
+ def test_update
+ assert_equal "eCookbook", @ecookbook.name
+ @ecookbook.name = "eCook"
+ assert @ecookbook.save, @ecookbook.errors.full_messages.join("; ")
+ @ecookbook.reload
+ assert_equal "eCook", @ecookbook.name
+ end
+
+ def test_validate
+ @ecookbook.name = ""
+ assert !@ecookbook.save
+ assert_equal 1, @ecookbook.errors.count
+ assert_equal I18n.translate('activerecord.errors.messages.blank'), @ecookbook.errors.on(:name)
+ end
+
+ def test_validate_identifier
+ to_test = {"abc" => true,
+ "ab12" => true,
+ "ab-12" => true,
+ "12" => false,
+ "new" => false}
+
+ to_test.each do |identifier, valid|
+ p = Project.new
+ p.identifier = identifier
+ p.valid?
+ assert_equal valid, p.errors.on('identifier').nil?
+ end
+ end
+
+ def test_members_should_be_active_users
+ Project.all.each do |project|
+ assert_nil project.members.detect {|m| !(m.user.is_a?(User) && m.user.active?) }
+ end
+ end
+
+ def test_users_should_be_active_users
+ Project.all.each do |project|
+ assert_nil project.users.detect {|u| !(u.is_a?(User) && u.active?) }
+ end
+ end
+
+ def test_archive
+ user = @ecookbook.members.first.user
+ @ecookbook.archive
+ @ecookbook.reload
+
+ assert !@ecookbook.active?
+ assert !user.projects.include?(@ecookbook)
+ # Subproject are also archived
+ assert !@ecookbook.children.empty?
+ assert @ecookbook.descendants.active.empty?
+ end
+
+ def test_unarchive
+ user = @ecookbook.members.first.user
+ @ecookbook.archive
+ # A subproject of an archived project can not be unarchived
+ assert !@ecookbook_sub1.unarchive
+
+ # Unarchive project
+ assert @ecookbook.unarchive
+ @ecookbook.reload
+ assert @ecookbook.active?
+ assert user.projects.include?(@ecookbook)
+ # Subproject can now be unarchived
+ @ecookbook_sub1.reload
+ assert @ecookbook_sub1.unarchive
+ end
+
+ def test_destroy
+ # 2 active members
+ assert_equal 2, @ecookbook.members.size
+ # and 1 is locked
+ assert_equal 3, Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).size
+ # some boards
+ assert @ecookbook.boards.any?
+
+ @ecookbook.destroy
+ # make sure that the project non longer exists
+ assert_raise(ActiveRecord::RecordNotFound) { Project.find(@ecookbook.id) }
+ # make sure related data was removed
+ assert Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?
+ assert Board.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?
+ end
+
+ def test_move_an_orphan_project_to_a_root_project
+ sub = Project.find(2)
+ sub.set_parent! @ecookbook
+ assert_equal @ecookbook.id, sub.parent.id
+ @ecookbook.reload
+ assert_equal 4, @ecookbook.children.size
+ end
+
+ def test_move_an_orphan_project_to_a_subproject
+ sub = Project.find(2)
+ assert sub.set_parent!(@ecookbook_sub1)
+ end
+
+ def test_move_a_root_project_to_a_project
+ sub = @ecookbook
+ assert sub.set_parent!(Project.find(2))
+ end
+
+ def test_should_not_move_a_project_to_its_children
+ sub = @ecookbook
+ assert !(sub.set_parent!(Project.find(3)))
+ end
+
+ def test_set_parent_should_add_roots_in_alphabetical_order
+ ProjectCustomField.delete_all
+ Project.delete_all
+ Project.create!(:name => 'Project C', :identifier => 'project-c').set_parent!(nil)
+ Project.create!(:name => 'Project B', :identifier => 'project-b').set_parent!(nil)
+ Project.create!(:name => 'Project D', :identifier => 'project-d').set_parent!(nil)
+ Project.create!(:name => 'Project A', :identifier => 'project-a').set_parent!(nil)
+
+ assert_equal 4, Project.count
+ assert_equal Project.all.sort_by(&:name), Project.all.sort_by(&:lft)
+ end
+
+ def test_set_parent_should_add_children_in_alphabetical_order
+ ProjectCustomField.delete_all
+ parent = Project.create!(:name => 'Parent', :identifier => 'parent')
+ Project.create!(:name => 'Project C', :identifier => 'project-c').set_parent!(parent)
+ Project.create!(:name => 'Project B', :identifier => 'project-b').set_parent!(parent)
+ Project.create!(:name => 'Project D', :identifier => 'project-d').set_parent!(parent)
+ Project.create!(:name => 'Project A', :identifier => 'project-a').set_parent!(parent)
+
+ parent.reload
+ assert_equal 4, parent.children.size
+ assert_equal parent.children.sort_by(&:name), parent.children
+ end
+
+ def test_rebuild_should_sort_children_alphabetically
+ ProjectCustomField.delete_all
+ parent = Project.create!(:name => 'Parent', :identifier => 'parent')
+ Project.create!(:name => 'Project C', :identifier => 'project-c').move_to_child_of(parent)
+ Project.create!(:name => 'Project B', :identifier => 'project-b').move_to_child_of(parent)
+ Project.create!(:name => 'Project D', :identifier => 'project-d').move_to_child_of(parent)
+ Project.create!(:name => 'Project A', :identifier => 'project-a').move_to_child_of(parent)
+
+ Project.update_all("lft = NULL, rgt = NULL")
+ Project.rebuild!
+
+ parent.reload
+ assert_equal 4, parent.children.size
+ assert_equal parent.children.sort_by(&:name), parent.children
+ end
+
+ def test_parent
+ p = Project.find(6).parent
+ assert p.is_a?(Project)
+ assert_equal 5, p.id
+ end
+
+ def test_ancestors
+ a = Project.find(6).ancestors
+ assert a.first.is_a?(Project)
+ assert_equal [1, 5], a.collect(&:id)
+ end
+
+ def test_root
+ r = Project.find(6).root
+ assert r.is_a?(Project)
+ assert_equal 1, r.id
+ end
+
+ def test_children
+ c = Project.find(1).children
+ assert c.first.is_a?(Project)
+ assert_equal [5, 3, 4], c.collect(&:id)
+ end
+
+ def test_descendants
+ d = Project.find(1).descendants
+ assert d.first.is_a?(Project)
+ assert_equal [5, 6, 3, 4], d.collect(&:id)
+ end
+
+ def test_users_by_role
+ users_by_role = Project.find(1).users_by_role
+ assert_kind_of Hash, users_by_role
+ role = Role.find(1)
+ assert_kind_of Array, users_by_role[role]
+ assert users_by_role[role].include?(User.find(2))
+ end
+
+ def test_rolled_up_trackers
+ parent = Project.find(1)
+ parent.trackers = Tracker.find([1,2])
+ child = parent.children.find(3)
+
+ assert_equal [1, 2], parent.tracker_ids
+ assert_equal [2, 3], child.trackers.collect(&:id)
+
+ assert_kind_of Tracker, parent.rolled_up_trackers.first
+ assert_equal Tracker.find(1), parent.rolled_up_trackers.first
+
+ assert_equal [1, 2, 3], parent.rolled_up_trackers.collect(&:id)
+ assert_equal [2, 3], child.rolled_up_trackers.collect(&:id)
+ end
+
+ def test_rolled_up_trackers_should_ignore_archived_subprojects
+ parent = Project.find(1)
+ parent.trackers = Tracker.find([1,2])
+ child = parent.children.find(3)
+ child.trackers = Tracker.find([1,3])
+ parent.children.each(&:archive)
+
+ assert_equal [1,2], parent.rolled_up_trackers.collect(&:id)
+ end
+
+ def test_next_identifier
+ ProjectCustomField.delete_all
+ Project.create!(:name => 'last', :identifier => 'p2008040')
+ assert_equal 'p2008041', Project.next_identifier
+ end
+
+ def test_next_identifier_first_project
+ Project.delete_all
+ assert_nil Project.next_identifier
+ end
+
+
+ def test_enabled_module_names_should_not_recreate_enabled_modules
+ project = Project.find(1)
+ # Remove one module
+ modules = project.enabled_modules.slice(0..-2)
+ assert modules.any?
+ assert_difference 'EnabledModule.count', -1 do
+ project.enabled_module_names = modules.collect(&:name)
+ end
+ project.reload
+ # Ids should be preserved
+ assert_equal project.enabled_module_ids.sort, modules.collect(&:id).sort
+ end
+
+ def test_copy_from_existing_project
+ source_project = Project.find(1)
+ copied_project = Project.copy_from(1)
+
+ assert copied_project
+ # Cleared attributes
+ assert copied_project.id.blank?
+ assert copied_project.name.blank?
+ assert copied_project.identifier.blank?
+
+ # Duplicated attributes
+ assert_equal source_project.description, copied_project.description
+ assert_equal source_project.enabled_modules, copied_project.enabled_modules
+ assert_equal source_project.trackers, copied_project.trackers
+
+ # Default attributes
+ assert_equal 1, copied_project.status
+ end
+
+ # Context: Project#copy
+ def test_copy_should_copy_issues
+ # Setup
+ ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
+ source_project = Project.find(2)
+ Project.destroy_all :identifier => "copy-test"
+ project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
+ project.trackers = source_project.trackers
+ assert project.valid?
+
+ assert project.issues.empty?
+ assert project.copy(source_project)
+
+ # Tests
+ assert_equal source_project.issues.size, project.issues.size
+ project.issues.each do |issue|
+ assert issue.valid?
+ assert ! issue.assigned_to.blank?
+ assert_equal project, issue.project
+ end
+ end
+
+ def test_copy_should_copy_members
+ # Setup
+ ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
+ source_project = Project.find(2)
+ project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
+ project.trackers = source_project.trackers
+ project.enabled_modules = source_project.enabled_modules
+ assert project.valid?
+
+ assert project.members.empty?
+ assert project.copy(source_project)
+
+ # Tests
+ assert_equal source_project.members.size, project.members.size
+ project.members.each do |member|
+ assert member
+ assert_equal project, member.project
+ end
+ end
+
+ def test_copy_should_copy_project_level_queries
+ # Setup
+ ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
+ source_project = Project.find(2)
+ project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
+ project.trackers = source_project.trackers
+ project.enabled_modules = source_project.enabled_modules
+ assert project.valid?
+
+ assert project.queries.empty?
+ assert project.copy(source_project)
+
+ # Tests
+ assert_equal source_project.queries.size, project.queries.size
+ project.queries.each do |query|
+ assert query
+ assert_equal project, query.project
+ end
+ end
+
+end
diff --git a/test/unit/repository_test.rb b/test/unit/repository_test.rb
index cc356ec1d..6512c067a 100644
--- a/test/unit/repository_test.rb
+++ b/test/unit/repository_test.rb
@@ -32,17 +32,17 @@ class RepositoryTest < ActiveSupport::TestCase
def setup
@repository = Project.find(1).repository
end
-
- def test_create
+
+ def test_create
repository = Repository::Subversion.new(:project => Project.find(3))
assert !repository.save
- repository.url = "svn://localhost"
+ repository.url = "svn://localhost"
assert repository.save
repository.reload
project = Project.find(3)
- assert_equal repository, project.repository
+ assert_equal repository, project.repository
end
def test_destroy
diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb
index e685f53b6..1555c0c76 100644
--- a/test/unit/user_test.rb
+++ b/test/unit/user_test.rb
@@ -1,223 +1,223 @@
-# redMine - project management software
-# Copyright (C) 2006 Jean-Philippe Lang
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-require File.dirname(__FILE__) + '/../test_helper'
-
-class UserTest < ActiveSupport::TestCase
- fixtures :users, :members, :projects, :roles, :member_roles
-
- def setup
- @admin = User.find(1)
- @jsmith = User.find(2)
- @dlopper = User.find(3)
- end
-
- def test_truth
- assert_kind_of User, @jsmith
- end
-
- def test_create
- user = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
-
- user.login = "jsmith"
- user.password, user.password_confirmation = "password", "password"
- # login uniqueness
- assert !user.save
- assert_equal 1, user.errors.count
-
- user.login = "newuser"
- user.password, user.password_confirmation = "passwd", "password"
- # password confirmation
- assert !user.save
- assert_equal 1, user.errors.count
-
- user.password, user.password_confirmation = "password", "password"
- assert user.save
- end
-
- def test_mail_uniqueness_should_not_be_case_sensitive
- u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
- u.login = 'newuser1'
- u.password, u.password_confirmation = "password", "password"
- assert u.save
-
- u = User.new(:firstname => "new", :lastname => "user", :mail => "newUser@Somenet.foo")
- u.login = 'newuser2'
- u.password, u.password_confirmation = "password", "password"
- assert !u.save
- assert_equal I18n.translate('activerecord.errors.messages.taken'), u.errors.on(:mail)
- end
-
- def test_update
- assert_equal "admin", @admin.login
- @admin.login = "john"
- assert @admin.save, @admin.errors.full_messages.join("; ")
- @admin.reload
- assert_equal "john", @admin.login
- end
-
- def test_destroy
- User.find(2).destroy
- assert_nil User.find_by_id(2)
- assert Member.find_all_by_user_id(2).empty?
- end
-
- def test_validate
- @admin.login = ""
- assert !@admin.save
- assert_equal 1, @admin.errors.count
- end
-
- def test_password
- user = User.try_to_login("admin", "admin")
- assert_kind_of User, user
- assert_equal "admin", user.login
- user.password = "hello"
- assert user.save
-
- user = User.try_to_login("admin", "hello")
- assert_kind_of User, user
- assert_equal "admin", user.login
- assert_equal User.hash_password("hello"), user.hashed_password
- end
-
- def test_name_format
- assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname)
- Setting.user_format = :firstname_lastname
- assert_equal 'John Smith', @jsmith.reload.name
- Setting.user_format = :username
- assert_equal 'jsmith', @jsmith.reload.name
- end
-
- def test_lock
- user = User.try_to_login("jsmith", "jsmith")
- assert_equal @jsmith, user
-
- @jsmith.status = User::STATUS_LOCKED
- assert @jsmith.save
-
- user = User.try_to_login("jsmith", "jsmith")
- assert_equal nil, user
- end
-
- def test_create_anonymous
- AnonymousUser.delete_all
- anon = User.anonymous
- assert !anon.new_record?
- assert_kind_of AnonymousUser, anon
- end
-
- def test_rss_key
- assert_nil @jsmith.rss_token
- key = @jsmith.rss_key
- assert_equal 40, key.length
-
- @jsmith.reload
- assert_equal key, @jsmith.rss_key
- end
-
- def test_roles_for_project
- # user with a role
- roles = @jsmith.roles_for_project(Project.find(1))
- assert_kind_of Role, roles.first
- assert_equal "Manager", roles.first.name
-
- # user with no role
- assert_nil @dlopper.roles_for_project(Project.find(2)).detect {|role| role.member?}
- end
-
- def test_mail_notification_all
- @jsmith.mail_notification = true
- @jsmith.notified_project_ids = []
- @jsmith.save
- @jsmith.reload
- assert @jsmith.projects.first.recipients.include?(@jsmith.mail)
- end
-
- def test_mail_notification_selected
- @jsmith.mail_notification = false
- @jsmith.notified_project_ids = [1]
- @jsmith.save
- @jsmith.reload
- assert Project.find(1).recipients.include?(@jsmith.mail)
- end
-
- def test_mail_notification_none
- @jsmith.mail_notification = false
- @jsmith.notified_project_ids = []
- @jsmith.save
- @jsmith.reload
- assert !@jsmith.projects.first.recipients.include?(@jsmith.mail)
- end
-
- def test_comments_sorting_preference
- assert !@jsmith.wants_comments_in_reverse_order?
- @jsmith.pref.comments_sorting = 'asc'
- assert !@jsmith.wants_comments_in_reverse_order?
- @jsmith.pref.comments_sorting = 'desc'
- assert @jsmith.wants_comments_in_reverse_order?
- end
-
- def test_find_by_mail_should_be_case_insensitive
- u = User.find_by_mail('JSmith@somenet.foo')
- assert_not_nil u
- assert_equal 'jsmith@somenet.foo', u.mail
- end
-
- def test_random_password
- u = User.new
- u.random_password
- assert !u.password.blank?
- assert !u.password_confirmation.blank?
- end
-
- if Object.const_defined?(:OpenID)
-
- def test_setting_identity_url
- normalized_open_id_url = 'http://example.com/'
- u = User.new( :identity_url => 'http://example.com/' )
- assert_equal normalized_open_id_url, u.identity_url
- end
-
- def test_setting_identity_url_without_trailing_slash
- normalized_open_id_url = 'http://example.com/'
- u = User.new( :identity_url => 'http://example.com' )
- assert_equal normalized_open_id_url, u.identity_url
- end
-
- def test_setting_identity_url_without_protocol
- normalized_open_id_url = 'http://example.com/'
- u = User.new( :identity_url => 'example.com' )
- assert_equal normalized_open_id_url, u.identity_url
- end
-
- def test_setting_blank_identity_url
- u = User.new( :identity_url => 'example.com' )
- u.identity_url = ''
- assert u.identity_url.blank?
- end
-
- def test_setting_invalid_identity_url
- u = User.new( :identity_url => 'this is not an openid url' )
- assert u.identity_url.blank?
- end
-
- else
- puts "Skipping openid tests."
- end
-
-end
+# redMine - project management software
+# Copyright (C) 2006 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+require File.dirname(__FILE__) + '/../test_helper'
+
+class UserTest < ActiveSupport::TestCase
+ fixtures :users, :members, :projects, :roles, :member_roles
+
+ def setup
+ @admin = User.find(1)
+ @jsmith = User.find(2)
+ @dlopper = User.find(3)
+ end
+
+ def test_truth
+ assert_kind_of User, @jsmith
+ end
+
+ def test_create
+ user = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
+
+ user.login = "jsmith"
+ user.password, user.password_confirmation = "password", "password"
+ # login uniqueness
+ assert !user.save
+ assert_equal 1, user.errors.count
+
+ user.login = "newuser"
+ user.password, user.password_confirmation = "passwd", "password"
+ # password confirmation
+ assert !user.save
+ assert_equal 1, user.errors.count
+
+ user.password, user.password_confirmation = "password", "password"
+ assert user.save
+ end
+
+ def test_mail_uniqueness_should_not_be_case_sensitive
+ u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
+ u.login = 'newuser1'
+ u.password, u.password_confirmation = "password", "password"
+ assert u.save
+
+ u = User.new(:firstname => "new", :lastname => "user", :mail => "newUser@Somenet.foo")
+ u.login = 'newuser2'
+ u.password, u.password_confirmation = "password", "password"
+ assert !u.save
+ assert_equal I18n.translate('activerecord.errors.messages.taken'), u.errors.on(:mail)
+ end
+
+ def test_update
+ assert_equal "admin", @admin.login
+ @admin.login = "john"
+ assert @admin.save, @admin.errors.full_messages.join("; ")
+ @admin.reload
+ assert_equal "john", @admin.login
+ end
+
+ def test_destroy
+ User.find(2).destroy
+ assert_nil User.find_by_id(2)
+ assert Member.find_all_by_user_id(2).empty?
+ end
+
+ def test_validate
+ @admin.login = ""
+ assert !@admin.save
+ assert_equal 1, @admin.errors.count
+ end
+
+ def test_password
+ user = User.try_to_login("admin", "admin")
+ assert_kind_of User, user
+ assert_equal "admin", user.login
+ user.password = "hello"
+ assert user.save
+
+ user = User.try_to_login("admin", "hello")
+ assert_kind_of User, user
+ assert_equal "admin", user.login
+ assert_equal User.hash_password("hello"), user.hashed_password
+ end
+
+ def test_name_format
+ assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname)
+ Setting.user_format = :firstname_lastname
+ assert_equal 'John Smith', @jsmith.reload.name
+ Setting.user_format = :username
+ assert_equal 'jsmith', @jsmith.reload.name
+ end
+
+ def test_lock
+ user = User.try_to_login("jsmith", "jsmith")
+ assert_equal @jsmith, user
+
+ @jsmith.status = User::STATUS_LOCKED
+ assert @jsmith.save
+
+ user = User.try_to_login("jsmith", "jsmith")
+ assert_equal nil, user
+ end
+
+ def test_create_anonymous
+ AnonymousUser.delete_all
+ anon = User.anonymous
+ assert !anon.new_record?
+ assert_kind_of AnonymousUser, anon
+ end
+
+ def test_rss_key
+ assert_nil @jsmith.rss_token
+ key = @jsmith.rss_key
+ assert_equal 40, key.length
+
+ @jsmith.reload
+ assert_equal key, @jsmith.rss_key
+ end
+
+ def test_roles_for_project
+ # user with a role
+ roles = @jsmith.roles_for_project(Project.find(1))
+ assert_kind_of Role, roles.first
+ assert_equal "Manager", roles.first.name
+
+ # user with no role
+ assert_nil @dlopper.roles_for_project(Project.find(2)).detect {|role| role.member?}
+ end
+
+ def test_mail_notification_all
+ @jsmith.mail_notification = true
+ @jsmith.notified_project_ids = []
+ @jsmith.save
+ @jsmith.reload
+ assert @jsmith.projects.first.recipients.include?(@jsmith.mail)
+ end
+
+ def test_mail_notification_selected
+ @jsmith.mail_notification = false
+ @jsmith.notified_project_ids = [1]
+ @jsmith.save
+ @jsmith.reload
+ assert Project.find(1).recipients.include?(@jsmith.mail)
+ end
+
+ def test_mail_notification_none
+ @jsmith.mail_notification = false
+ @jsmith.notified_project_ids = []
+ @jsmith.save
+ @jsmith.reload
+ assert !@jsmith.projects.first.recipients.include?(@jsmith.mail)
+ end
+
+ def test_comments_sorting_preference
+ assert !@jsmith.wants_comments_in_reverse_order?
+ @jsmith.pref.comments_sorting = 'asc'
+ assert !@jsmith.wants_comments_in_reverse_order?
+ @jsmith.pref.comments_sorting = 'desc'
+ assert @jsmith.wants_comments_in_reverse_order?
+ end
+
+ def test_find_by_mail_should_be_case_insensitive
+ u = User.find_by_mail('JSmith@somenet.foo')
+ assert_not_nil u
+ assert_equal 'jsmith@somenet.foo', u.mail
+ end
+
+ def test_random_password
+ u = User.new
+ u.random_password
+ assert !u.password.blank?
+ assert !u.password_confirmation.blank?
+ end
+
+ if Object.const_defined?(:OpenID)
+
+ def test_setting_identity_url
+ normalized_open_id_url = 'http://example.com/'
+ u = User.new( :identity_url => 'http://example.com/' )
+ assert_equal normalized_open_id_url, u.identity_url
+ end
+
+ def test_setting_identity_url_without_trailing_slash
+ normalized_open_id_url = 'http://example.com/'
+ u = User.new( :identity_url => 'http://example.com' )
+ assert_equal normalized_open_id_url, u.identity_url
+ end
+
+ def test_setting_identity_url_without_protocol
+ normalized_open_id_url = 'http://example.com/'
+ u = User.new( :identity_url => 'example.com' )
+ assert_equal normalized_open_id_url, u.identity_url
+ end
+
+ def test_setting_blank_identity_url
+ u = User.new( :identity_url => 'example.com' )
+ u.identity_url = ''
+ assert u.identity_url.blank?
+ end
+
+ def test_setting_invalid_identity_url
+ u = User.new( :identity_url => 'this is not an openid url' )
+ assert u.identity_url.blank?
+ end
+
+ else
+ puts "Skipping openid tests."
+ end
+
+end
diff --git a/test/unit/wiki_page_test.rb b/test/unit/wiki_page_test.rb
index 1837edb18..5c0def179 100644
--- a/test/unit/wiki_page_test.rb
+++ b/test/unit/wiki_page_test.rb
@@ -24,18 +24,18 @@ class WikiPageTest < ActiveSupport::TestCase
@wiki = Wiki.find(1)
@page = @wiki.pages.first
end
-
- def test_create
+
+ def test_create
page = WikiPage.new(:wiki => @wiki)
assert !page.save
assert_equal 1, page.errors.count
- page.title = "Page"
+ page.title = "Page"
assert page.save
page.reload
@wiki.reload
- assert @wiki.pages.include?(page)
+ assert @wiki.pages.include?(page)
end
def test_find_or_new_page
diff --git a/test/unit/wiki_test.rb b/test/unit/wiki_test.rb
index fd8a375e1..ed96e0700 100644
--- a/test/unit/wiki_test.rb
+++ b/test/unit/wiki_test.rb
@@ -19,15 +19,15 @@ require File.dirname(__FILE__) + '/../test_helper'
class WikiTest < ActiveSupport::TestCase
fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
-
- def test_create
+
+ def test_create
wiki = Wiki.new(:project => Project.find(2))
assert !wiki.save
assert_equal 1, wiki.errors.count
- wiki.start_page = "Start page"
- assert wiki.save
- end
+ wiki.start_page = "Start page"
+ assert wiki.save
+ end
def test_update
@wiki = Wiki.find(1)