diff --git a/after_init.rb b/after_init.rb
index 332fcca3..ae2a2468 100644
--- a/after_init.rb
+++ b/after_init.rb
@@ -40,8 +40,8 @@ def init
:dmsf_folders_copy => [:new, :copy, :move],
:dmsf_context_menus => [:dmsf]}
pmap.permission :file_manipulation,
- {:dmsf_files => [:create_revision, :lock, :unlock, :delete_revision, :obsolete_revision, :notify_activate,
- :notify_deactivate, :restore],
+ {:dmsf_files => [:create_revision, :lock, :unlock, :delete_revision, :obsolete_revision,
+ :notify_activate, :notify_deactivate, :restore],
:dmsf_upload => [:upload_files, :upload_file, :upload, :commit_files, :commit,
:delete_dmsf_attachment, :delete_dmsf_link_attachment],
:dmsf_links => [:new, :create, :destroy, :restore, :autocomplete_for_project,
diff --git a/app/controllers/dmsf_files_controller.rb b/app/controllers/dmsf_files_controller.rb
index 532ed6c5..f7327360 100644
--- a/app/controllers/dmsf_files_controller.rb
+++ b/app/controllers/dmsf_files_controller.rb
@@ -248,7 +248,6 @@ class DmsfFilesController < ApplicationController
if @revision
if @revision.obsolete()
flash[:notice] = l(:notice_revision_obsoleted)
- log_activity('obsoleted')
else
flash[:error] = @revision.errors.full_messages.join(', ')
end
diff --git a/app/models/dmsf_file_revision.rb b/app/models/dmsf_file_revision.rb
index 6be846a7..76965097 100644
--- a/app/models/dmsf_file_revision.rb
+++ b/app/models/dmsf_file_revision.rb
@@ -114,7 +114,6 @@ class DmsfFileRevision < ActiveRecord::Base
errors[:base] << l(:error_file_is_locked)
return false
end
-
self.workflow = DmsfWorkflow::STATE_OBSOLETE
save
end
diff --git a/app/views/dmsf/_list_view.erb b/app/views/dmsf/_list_view.erb
index e89f32e8..d2f781bd 100644
--- a/app/views/dmsf/_list_view.erb
+++ b/app/views/dmsf/_list_view.erb
@@ -119,7 +119,7 @@
<% end %>
<% classes = 'dmsf_gray hascontextmenu' %>
<% @file_links.each do |link| %>
- <% unless link.target_file.last_revision %>
+ <% unless link.target_file && link.target_file.last_revision %>
<% Rails.logger.error "Error: dmsf_file id #{link.target_id} has no revision!" %>
<% next %>
<% end %>
diff --git a/app/views/dmsf_files/show.html.erb b/app/views/dmsf_files/show.html.erb
index 3b0dee12..d95f453e 100644
--- a/app/views/dmsf_files/show.html.erb
+++ b/app/views/dmsf_files/show.html.erb
@@ -25,7 +25,7 @@
<% html_title(l(:dmsf)) %>
- <% if User.current.allowed_to?(:file_manipulation, @project) %>
+ <% if @file_manipulation_allowed %>
<% unless @file.locked_for_user? %>
<% unless @file.locked? %>
<%= link_to(l(:button_lock), lock_dmsf_files_path(:id => @file),
@@ -64,7 +64,7 @@
<%= render(:partial => '/dmsf/path',
:locals => {:folder => @file.dmsf_folder, :filename => @file.title, :title => nil}) %>
-<% if User.current.allowed_to?(:file_manipulation, @file.project) && !@file.locked_for_user? %>
+<% if @file_manipulation_allowed && !@file.locked_for_user? %>
<%= error_messages_for('file') %>
<%= error_messages_for('revision') %>
<%= render(:partial => 'file_new_revision') %>
@@ -94,7 +94,7 @@
<%= link_to image_tag('/../../plugin_assets/redmine_dmsf/images/obsolete.png'),
obsolete_revision_path(revision),
:data => {:confirm => l(:text_are_you_sure)},
- :title => l(:title_obsolete_revision) if @file_delete_allowed && (revision.workflow == DmsfWorkflow::STATE_APPROVED) %>
+ :title => l(:title_obsolete_revision) if @file_manipulation_allowed && (revision.workflow == DmsfWorkflow::STATE_APPROVED) %>
<%= l(:info_revision, :rev => revision.id) %>
<%= (revision.source_revision.nil? ? l(:label_created) : l(:label_changed)).downcase %>
@@ -174,7 +174,7 @@
" style="display:none">
- <%= render(:partial => 'revision_access', :locals => {:revision => revision}) if User.current.allowed_to?(:file_manipulation, @file.project) %>
+ <%= render(:partial => 'revision_access', :locals => {:revision => revision}) if @file_manipulation_allowed %>
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 655f8210..ed45d8cf 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -48,6 +48,7 @@ cs:
notice_file_deleted: Soubor byl smazán
error_at_least_one_revision_must_be_present: Musí existovat alespoň jedna revize
notice_revision_deleted: Revize byla smazána
+ notice_revision_obsoleted: Revize je zastaralá
warning_one_of_files_locked: Jeden ze souborů je zamčen
notice_file_revision_created: vytvořena nová revize
notice_your_preferences_were_saved: Vaše nastavení bylo uloženo
@@ -115,6 +116,7 @@ cs:
heading_revisions: Revize
title_download: Stáhnout
title_delete_revision: Smazat revizi
+ title_obsolete_revision: Označit revizi jako zastaralou
label_created: Vytvořeno
label_changed: Změněno
info_changed_by_user: "%{changed} uživatelem"
@@ -269,6 +271,7 @@ cs:
title_assigned: Přiřazený
title_approval: Schválený
title_rejected: Zamítnutý
+ title_obsolete: Zastaralá
dmsf_and: A
dmsf_or: NEBO
dmsf_new_step: Nový krok
diff --git a/config/locales/de.yml b/config/locales/de.yml
index c04c298c..4ebd1101 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -48,6 +48,7 @@ de:
notice_file_deleted: Datei gelöscht
error_at_least_one_revision_must_be_present: Es muss mindestens eine Version existieren
notice_revision_deleted: Version gelöscht
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: Eine der Dateien ist gesperrt
notice_file_revision_created: Dateiversion erstellt
notice_your_preferences_were_saved: Deine Einstellungen wurden gespeichert
@@ -115,6 +116,7 @@ de:
heading_revisions: Versionen
title_download: Download
title_delete_revision: Lösche Version
+ title_obsolete_revision: Obsolete revision
label_created: Erstellt
label_changed: Geändert
info_changed_by_user: "%{changed} von"
@@ -269,6 +271,7 @@ de:
title_assigned: Zugewiesen
title_approval: Genehmigt
title_rejected: Abgelehnt
+ title_obsolete: Obsolete
dmsf_and: UND
dmsf_or: ODER
dmsf_new_step: Neuer Schritt
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 52b69613..9c52b6f1 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -166,7 +166,6 @@ en:
permission_display_system_folders: Display system folders
permission_file_approval: File approval
permission_email_documents: Email documents
-
label_file: File
field_folder: Folder
error_create_cycle_in_folder_dependency: create cycle in folder dependency
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 10087622..4cb39aa2 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -48,6 +48,7 @@ fr:
notice_file_deleted: Le fichier a été supprimé
error_at_least_one_revision_must_be_present: Au moins une révision est requise
notice_revision_deleted: Révision supprimée
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: Un des fichiers sélectionnés est verrouillé
notice_file_revision_created: La révision du fichier a été ajoutée
notice_your_preferences_were_saved: Vos paramètres ont été enregistrés
@@ -115,6 +116,7 @@ fr:
heading_revisions: Révisions
title_download: Télécharger
title_delete_revision: Supprimer la révision
+ title_obsolete_revision: Obsolete revision
label_created: Créé
label_changed: Modifié
info_changed_by_user: "%{changed} par"
@@ -269,6 +271,7 @@ fr:
title_assigned: Assigné
title_approval: Approbation
title_rejected: Rejeté
+ title_obsolete: Obsolete
dmsf_and: ET
dmsf_or: OU
dmsf_new_step: Nouvelle étape
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index e564b61e..a4cfa0dc 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -48,6 +48,7 @@ hu:
notice_file_deleted: Törölt fájl
error_at_least_one_revision_must_be_present: Legalább egy verziónak szükséges lennie
notice_revision_deleted: Verzió törölve
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: Az egyik fájl zárolva van
notice_file_revision_created: Fájl verzió létrehozva
notice_your_preferences_were_saved: A preferenciái mentése kerültek
@@ -115,6 +116,7 @@ hu:
heading_revisions: Verziók
title_download: Letöltés
title_delete_revision: Verzió törlése
+ title_obsolete_revision: Obsolete revision
label_created: Létrehozott
label_changed: Változtatott
info_changed_by_user: "%{changed} általa"
@@ -269,6 +271,7 @@ hu:
title_assigned: Kiosztott
title_approval: Jóváhagyás
title_rejected: Visszautasított
+ title_obsolete: Obsolete
dmsf_and: ÉS
dmsf_or: VAGY
dmsf_new_step: Új lépés
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 9a9d74fb..63b45110 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -48,6 +48,7 @@ it: # Italian strings thx 2 Matteo Arceci!
notice_file_deleted: Il documento è stato cancellato
error_at_least_one_revision_must_be_present: Deve essere presente almeno una revisione
notice_revision_deleted: Revisione cancellata
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: Uno dei documenti è bloccato
notice_file_revision_created: Revisione del documento creata
notice_your_preferences_were_saved: Le tue preferenze sono state salvate
@@ -115,6 +116,7 @@ it: # Italian strings thx 2 Matteo Arceci!
heading_revisions: Revisioni
title_download: Download
title_delete_revision: Cancella revisione
+ title_obsolete_revision: Obsolete revision
label_created: Creato
label_changed: Modificato
info_changed_by_user: "%{changed} da"
@@ -269,6 +271,7 @@ it: # Italian strings thx 2 Matteo Arceci!
title_assigned: Assegnato
title_approval: Approvazione
title_rejected: Rifiutato
+ title_obsolete: Obsolete
dmsf_and: AND
dmsf_or: OR
dmsf_new_step: Nuovo passo
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index e11bd764..a93148db 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -49,6 +49,7 @@ ja:
error_at_least_one_revision_must_be_present: 少なくとも1つのリビジョンが必要です
notice_revision_deleted: リビジョンを削除しました
warning_one_of_files_locked: ファイルのうちの1つがロックされています
+ notice_revision_obsoleted: Revision obsoleted
notice_file_revision_created: ファイルのリビジョンを作成しました
notice_your_preferences_were_saved: あなたの設定を保存しました
notice_your_preferences_were_not_saved: Your preferences were not saved
@@ -115,6 +116,7 @@ ja:
heading_revisions: リビジョン
title_download: ダウンロードします
title_delete_revision: リビジョンを削除します
+ title_obsolete_revision: Obsolete revision
label_created: 作成者/日時
label_changed: 更新者/日時
info_changed_by_user: "/ %{changed}"
@@ -269,6 +271,7 @@ ja:
title_assigned: アサイン
title_approval: 承認
title_rejected: 否認
+ title_obsolete: Obsolete
dmsf_and: AND
dmsf_or: OR
dmsf_new_step: 新規ステップ
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 5abfad16..9caf138e 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -49,6 +49,7 @@ ko:
error_at_least_one_revision_must_be_present: 적어도 한개의 수정사항이 있어야 합니다
notice_revision_deleted: 수정사항 삭제됨
warning_one_of_files_locked: 파일 중 한개가 잠겨있습니다
+ notice_revision_obsoleted: Revision obsoleted
notice_file_revision_created: 수정된 파일이 생성되었습니다
notice_your_preferences_were_saved: 사용자의 선호도가 저장되었습니다
notice_your_preferences_were_not_saved: 사용자의 선호도는 저장되지 않았습니다
@@ -115,6 +116,7 @@ ko:
heading_revisions: 수정
title_download: 다운로드
title_delete_revision: 수정사항 삭제
+ title_obsolete_revision: Obsolete revision
label_created: 생성됨
label_changed: 변경됨
info_changed_by_user: "가 %{changed}함"
@@ -269,6 +271,7 @@ ko:
title_assigned: 할당됨
title_approval: 승인
title_rejected: 반려
+ title_obsolete: Obsolete
dmsf_and: 및
dmsf_or: 혹은
dmsf_new_step: 새로운 스텝
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 7e68e8cb..4cf155ae 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -48,6 +48,7 @@ nl:
notice_file_deleted: Map verwijderd
error_at_least_one_revision_must_be_present: Er moet ten minste een revisie aanwezig zijn
notice_revision_deleted: Revisie verwijderd
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: Een van de bestanden vergrendeld
notice_file_revision_created: Bestandsrevisie aangemaakt
notice_your_preferences_were_saved: Uw voorkeuren zijn opgeslagen
@@ -115,6 +116,7 @@ nl:
heading_revisions: Revisies
title_download: Downloaden
title_delete_revision: Verwijder revisie
+ title_obsolete_revision: Obsolete revision
label_created: Aangemaakt
label_changed: Gewijzigd
info_changed_by_user: "%{changed} door"
@@ -269,6 +271,7 @@ nl:
title_assigned: Toegewezen
title_approval: Goedkeuring
title_rejected: Afgewezen
+ title_obsolete: Obsolete
dmsf_and: EN
dmsf_or: OF
dmsf_new_step: Nieuwe stap
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 97c7b427..89abcd52 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -48,6 +48,7 @@ pl:
notice_file_deleted: Plik został usunięty
error_at_least_one_revision_must_be_present: Musi istnieć co najmniej jedna wersja
notice_revision_deleted: Wersja usunięta
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: Jeden z plików jest zablokowany
notice_file_revision_created: Utworzono wersję pliku
notice_your_preferences_were_saved: Twoje preferencje zostały zapisane
@@ -115,6 +116,7 @@ pl:
heading_revisions: Wersje
title_download: Pobierz
title_delete_revision: Usuń wersję
+ title_obsolete_revision: Obsolete revision
label_created: Utworzono
label_changed: Zmieniono
info_changed_by_user: "%{changed} przez"
@@ -269,6 +271,7 @@ pl:
title_assigned: Przydzielony
title_approval: Akceptacja
title_rejected: Odrzucony
+ title_obsolete: Obsolete
dmsf_and: AND
dmsf_or: OR
dmsf_new_step: Nowy krok
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 6b85e585..b8cc7b00 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -48,6 +48,7 @@ pt-BR:
notice_file_deleted: Arquivo excluído
error_at_least_one_revision_must_be_present: Deve existir pelo menos uma revisão
notice_revision_deleted: Revisão excluída
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: Um dos arquivos bloqueados
notice_file_revision_created: Revisão do arquivo criado
notice_your_preferences_were_saved: Suas atualizações foram salvas
@@ -115,6 +116,7 @@ pt-BR:
heading_revisions: Revisões
title_download: Download
title_delete_revision: Revisão excluída
+ title_obsolete_revision: Obsolete revision
label_created: Criado
label_changed: Alterado
info_changed_by_user: "%{changed} por"
@@ -269,6 +271,7 @@ pt-BR:
title_assigned: Atribuído
title_approval: Aprovado
title_rejected: Rejeitado
+ title_obsolete: Obsolete
dmsf_and: E
dmsf_or: OU
dmsf_new_step: Novo passo
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 627a8008..cc15bdc6 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -48,6 +48,7 @@ ru:
notice_file_deleted: Файл удален
error_at_least_one_revision_must_be_present: По крайней мере, одна редакция должна присутствовать
notice_revision_deleted: Редакция удалена
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: Один из файлов заблокирован
notice_file_revision_created: Редакция файла создана
notice_your_preferences_were_saved: Ваши настройки были сохранены
@@ -115,6 +116,7 @@ ru:
heading_revisions: Редакции
title_download: Скачать
title_delete_revision: Удалить редакцию
+ title_obsolete_revision: Obsolete revision
label_created: Создан
label_changed: Изменен
info_changed_by_user: "%{changed} пользователем"
@@ -269,6 +271,7 @@ ru:
title_assigned: Назначен
title_approval: Согласован
title_rejected: Отклонен
+ title_obsolete: Obsolete
dmsf_and: AND
dmsf_or: OR
dmsf_new_step: Новый шаг
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index cf7739b4..7961cc47 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -48,6 +48,7 @@ sl:
notice_file_deleted: Datoteka izbrisana
error_at_least_one_revision_must_be_present: Vsaj ena verzija mora obstajati
notice_revision_deleted: Verzija izbrisana
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: Ena od datotek je zaklenjena
notice_file_revision_created: Verzija datoteke kreirana
notice_your_preferences_were_saved: Vaše nastavitve so shranjene
@@ -115,6 +116,7 @@ sl:
heading_revisions: Verzije
title_download: Prenesi dol
title_delete_revision: Izbriši verzijo
+ title_obsolete_revision: Obsolete revision
label_created: Narejeno
label_changed: Spremenjeno
info_changed_by_user: "%{changed} po"
@@ -269,6 +271,7 @@ sl:
title_assigned: Assigned
title_approval: Approval
title_rejected: Rejected
+ title_obsolete: Obsolete
dmsf_and: AND
dmsf_or: OR
dmsf_new_step: New step
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index ca830435..002da782 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -48,6 +48,7 @@ zh-TW:
notice_file_deleted: 檔案己經被刪除了
error_at_least_one_revision_must_be_present: 至少要有一個修訂版本存在
notice_revision_deleted: 修訂版本己經被刪除
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: 其中一個檔案被鎖定了
notice_file_revision_created: 檔案修訂版本己建立
notice_your_preferences_were_saved: 您的偏好設定己經儲存
@@ -115,6 +116,7 @@ zh-TW:
heading_revisions: 修訂版本
title_download: 下載
title_delete_revision: 刪除此修訂版本
+ title_obsolete_revision: Obsolete revision
label_created: 建立者/時間
label_changed: 修改者/時間
info_changed_by_user: "%{changed} by"
@@ -269,6 +271,7 @@ zh-TW:
title_assigned: Assigned
title_approval: Approval
title_rejected: Rejected
+ title_obsolete: Obsolete
dmsf_and: AND
dmsf_or: OR
dmsf_new_step: New step
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index c68f68fe..72c8f061 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -48,6 +48,7 @@ zh:
notice_file_deleted: 文件已删除
error_at_least_one_revision_must_be_present: 至少一个修订版本必须存在
notice_revision_deleted: 修订版本已删除
+ notice_revision_obsoleted: Revision obsoleted
warning_one_of_files_locked: 其中一个文件被锁定
notice_file_revision_created: 文件修订版本已创建
notice_your_preferences_were_saved: 您的偏好设定已保存
@@ -115,6 +116,7 @@ zh:
heading_revisions: 修订版本
title_download: 下载
title_delete_revision: 删除此修订
+ title_obsolete_revision: Obsolete revision
label_created: 创建
label_changed: 修改
info_changed_by_user: "%{changed} by"
@@ -269,6 +271,7 @@ zh:
title_assigned: Assigned
title_approval: Approval
title_rejected: Rejected
+ title_obsolete: Obsolete
dmsf_and: AND
dmsf_or: OR
dmsf_new_step: New step
diff --git a/test/functional/dmsf_files_controller_test.rb b/test/functional/dmsf_files_controller_test.rb
index 60199561..95ebfc3e 100644
--- a/test/functional/dmsf_files_controller_test.rb
+++ b/test/functional/dmsf_files_controller_test.rb
@@ -91,5 +91,16 @@ class DmsfFilesControllerTest < RedmineDmsf::Test::TestCase
assert_response :redirect
assert_equal 0, flash[:error].size
end
+
+ def test_obsolete_revision_ok
+ @role.add_permission! :file_manipulation
+ get :obsolete_revision, :id => @file.last_revision.id
+ assert_redirected_to :action => 'show', :id => @file
+ end
+
+ def test_obsolete_revision_missing_permissions
+ get :obsolete_revision, :id => @file.last_revision.id
+ assert :forbiden
+ end
end
\ No newline at end of file
diff --git a/test/unit/dmsf_file_revision_test.rb b/test/unit/dmsf_file_revision_test.rb
index 578ce517..820e53e1 100644
--- a/test/unit/dmsf_file_revision_test.rb
+++ b/test/unit/dmsf_file_revision_test.rb
@@ -21,6 +21,8 @@
require File.expand_path('../../test_helper', __FILE__)
class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest
+ include Redmine::I18n
+
fixtures :projects, :users, :email_addresses, :dmsf_folders, :dmsf_files, :dmsf_file_revisions, :roles, :members,
:member_roles, :enabled_modules, :enumerations, :dmsf_locks, :dmsf_workflows, :dmsf_workflow_steps,
:dmsf_workflow_step_assignments, :dmsf_workflow_step_actions
@@ -31,6 +33,8 @@ class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest
@revision5 = DmsfFileRevision.find_by_id 5
@revision8 = DmsfFileRevision.find_by_id 8
@wf1 = DmsfWorkflow.find_by_id 1
+ @admin = User.find_by_id 1
+ @jsmith = User.find_by_id 2
Setting.plugin_redmine_dmsf['dmsf_storage_directory'] = File.expand_path '../../fixtures/files', __FILE__
end
@@ -40,6 +44,8 @@ class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest
assert_kind_of DmsfFileRevision, @revision5
assert_kind_of DmsfFileRevision, @revision8
assert_kind_of DmsfWorkflow, @wf1
+ assert_kind_of User, @admin
+ assert_kind_of User, @jsmith
end
def test_delete_restore
@@ -223,4 +229,18 @@ class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest
assert_equal 'ms-excel', @revision1.protocol
end
+ def test_obsolete
+ assert @revision1.obsolete
+ assert_equal DmsfWorkflow::STATE_OBSOLETE, @revision1.workflow
+ end
+
+ def test_obsolete_locked
+ User.current = @admin
+ @revision1.dmsf_file.lock!
+ User.current = @jsmith
+ assert !@revision1.obsolete
+ assert_equal 1, @revision1.errors.count
+ @revision1.errors.full_messages.to_sentence.include?(l(:error_file_is_locked))
+ end
+
end
\ No newline at end of file