diff --git a/test/unit/dmsf_file_revision_test.rb b/test/unit/dmsf_file_revision_test.rb index 29281c14..dded0c48 100644 --- a/test/unit/dmsf_file_revision_test.rb +++ b/test/unit/dmsf_file_revision_test.rb @@ -25,11 +25,15 @@ class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest :member_roles, :enabled_modules, :enumerations, :dmsf_locks def setup - @revision5 = DmsfFileRevision.find_by_id 5 + @revision1 = DmsfFileRevision.find_by_id 1 + @revision2 = DmsfFileRevision.find_by_id 2 + @revision5 = DmsfFileRevision.find_by_id 5 end def test_truth - assert_kind_of DmsfFileRevision, @revision5 + assert_kind_of DmsfFileRevision, @revision1 + assert_kind_of DmsfFileRevision, @revision2 + assert_kind_of DmsfFileRevision, @revision5 end def test_delete_restore @@ -49,5 +53,38 @@ class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest def test_create_digest assert_equal @revision5.create_digest, 0, "MD5 should be 0, if the file is missing" end + + def test_save_and_destroy_with_cache + RedmineDmsf::Webdav::Cache.init_testcache + + # save + cache_key = @revision1.propfind_cache_key + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @revision1.save + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + RedmineDmsf::Webdav::Cache.delete("#{cache_key}.invalid") + + # destroy + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @revision1.destroy + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + + # save! + cache_key = @revision2.propfind_cache_key + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @revision2.save! + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + + RedmineDmsf::Webdav::Cache.init_nullcache + end end \ No newline at end of file diff --git a/test/unit/dmsf_file_test.rb b/test/unit/dmsf_file_test.rb index 0e1c9299..ba600c16 100644 --- a/test/unit/dmsf_file_test.rb +++ b/test/unit/dmsf_file_test.rb @@ -35,6 +35,7 @@ class DmsfFileTest < RedmineDmsf::Test::UnitTest @file3 = DmsfFile.find_by_id 3 @file4 = DmsfFile.find_by_id 4 @file5 = DmsfFile.find_by_id 5 + @file6 = DmsfFile.find_by_id 6 User.current = nil end @@ -47,6 +48,7 @@ class DmsfFileTest < RedmineDmsf::Test::UnitTest assert_kind_of DmsfFile, @file3 assert_kind_of DmsfFile, @file4 assert_kind_of DmsfFile, @file5 + assert_kind_of DmsfFile, @file6 end def test_project_file_count_differs_from_project_visibility_count @@ -134,5 +136,47 @@ class DmsfFileTest < RedmineDmsf::Test::UnitTest assert_equal 0, @file4.referenced_links.count @file4.dmsf_folder.lock! end + + def test_save_and_destroy_with_cache + RedmineDmsf::Webdav::Cache.init_testcache + + # save + cache_key = @file5.propfind_cache_key + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @file5.save + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + RedmineDmsf::Webdav::Cache.delete("#{cache_key}.invalid") + + # destroy + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @file5.destroy + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + + # save! + cache_key = @file6.propfind_cache_key + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @file6.save! + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + RedmineDmsf::Webdav::Cache.delete("#{cache_key}.invalid") + + # destroy! + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @file6.destroy! + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + + RedmineDmsf::Webdav::Cache.init_nullcache + end end \ No newline at end of file diff --git a/test/unit/dmsf_folder_test.rb b/test/unit/dmsf_folder_test.rb index 12f80858..e45029ef 100644 --- a/test/unit/dmsf_folder_test.rb +++ b/test/unit/dmsf_folder_test.rb @@ -25,10 +25,14 @@ class DmsfFolderTest < RedmineDmsf::Test::UnitTest fixtures :projects, :users, :email_addresses, :dmsf_folders, :roles, :members, :member_roles def setup + @folder4 = DmsfFolder.find_by_id 4 + @folder5 = DmsfFolder.find_by_id 5 @folder6 = DmsfFolder.find_by_id 6 end def test_truth + assert_kind_of DmsfFolder, @folder4 + assert_kind_of DmsfFolder, @folder5 assert_kind_of DmsfFolder, @folder6 end @@ -96,5 +100,47 @@ class DmsfFolderTest < RedmineDmsf::Test::UnitTest assert_equal DmsfFolder.get_column_position('version_calculated'), 11, "The expected position of the 'version_calculated' column is 14" end - + + def test_save_and_destroy_with_cache + RedmineDmsf::Webdav::Cache.init_testcache + + # save + cache_key = @folder4.propfind_cache_key + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @folder4.save + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + RedmineDmsf::Webdav::Cache.delete("#{cache_key}.invalid") + + # destroy + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @folder4.destroy + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + RedmineDmsf::Webdav::Cache.cache.clear + + # save! + cache_key = @folder5.propfind_cache_key + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @folder5.save! + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + RedmineDmsf::Webdav::Cache.delete("#{cache_key}.invalid") + + # destroy! + RedmineDmsf::Webdav::Cache.write(cache_key, "") + assert RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert !RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + @folder5.destroy! + assert !RedmineDmsf::Webdav::Cache.exist?(cache_key) + assert RedmineDmsf::Webdav::Cache.exist?("#{cache_key}.invalid") + + RedmineDmsf::Webdav::Cache.init_nullcache + end end \ No newline at end of file