diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-09-20 14:06:57 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-09-20 14:06:57 +0000 |
commit | 21e18c1eb4ac6a882c57ee3df2225851da23a57f (patch) | |
tree | 8889e4351130e1528ebb6bef07538c71f70d826f /test | |
parent | 52a6b0a21e5e28da4ed590383ae778c306cfaf1b (diff) | |
download | redmine-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')
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) |