Mercurial > hg > soundsoftware-site
comparison test/unit/attachment_test.rb @ 524:1248a47e81b3 feature_36
Merge from branch "luisf"
author | luisf <luis.figueira@eecs.qmul.ac.uk> |
---|---|
date | Mon, 25 Jul 2011 14:39:38 +0100 |
parents | 753f1380d6bc |
children | 5e80956cc792 |
comparison
equal
deleted
inserted
replaced
519:3be6bc3c2a17 | 524:1248a47e81b3 |
---|---|
1 # encoding: utf-8 | 1 # encoding: utf-8 |
2 # | 2 # |
3 # redMine - project management software | 3 # Redmine - project management software |
4 # Copyright (C) 2006-2007 Jean-Philippe Lang | 4 # Copyright (C) 2006-2011 Jean-Philippe Lang |
5 # | 5 # |
6 # This program is free software; you can redistribute it and/or | 6 # This program is free software; you can redistribute it and/or |
7 # modify it under the terms of the GNU General Public License | 7 # modify it under the terms of the GNU General Public License |
8 # as published by the Free Software Foundation; either version 2 | 8 # as published by the Free Software Foundation; either version 2 |
9 # of the License, or (at your option) any later version. | 9 # of the License, or (at your option) any later version. |
10 # | 10 # |
11 # This program is distributed in the hope that it will be useful, | 11 # This program is distributed in the hope that it will be useful, |
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 # GNU General Public License for more details. | 14 # GNU General Public License for more details. |
15 # | 15 # |
16 # You should have received a copy of the GNU General Public License | 16 # You should have received a copy of the GNU General Public License |
17 # along with this program; if not, write to the Free Software | 17 # along with this program; if not, write to the Free Software |
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | 18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
19 | 19 |
20 require File.dirname(__FILE__) + '/../test_helper' | 20 require File.expand_path('../../test_helper', __FILE__) |
21 | 21 |
22 class AttachmentTest < ActiveSupport::TestCase | 22 class AttachmentTest < ActiveSupport::TestCase |
23 fixtures :issues, :users | 23 fixtures :issues, :users |
24 | 24 |
25 def setup | 25 def setup |
26 end | 26 end |
27 | 27 |
28 def test_create | 28 def test_create |
29 a = Attachment.new(:container => Issue.find(1), | 29 a = Attachment.new(:container => Issue.find(1), |
32 assert a.save | 32 assert a.save |
33 assert_equal 'testfile.txt', a.filename | 33 assert_equal 'testfile.txt', a.filename |
34 assert_equal 59, a.filesize | 34 assert_equal 59, a.filesize |
35 assert_equal 'text/plain', a.content_type | 35 assert_equal 'text/plain', a.content_type |
36 assert_equal 0, a.downloads | 36 assert_equal 0, a.downloads |
37 assert_equal Digest::MD5.hexdigest(uploaded_test_file("testfile.txt", "text/plain").read), a.digest | 37 assert_equal '1478adae0d4eb06d35897518540e25d6', a.digest |
38 assert File.exist?(a.diskfile) | 38 assert File.exist?(a.diskfile) |
39 end | 39 end |
40 | 40 |
41 def test_create_should_auto_assign_content_type | 41 def test_create_should_auto_assign_content_type |
42 a = Attachment.new(:container => Issue.find(1), | 42 a = Attachment.new(:container => Issue.find(1), |
43 :file => uploaded_test_file("testfile.txt", ""), | 43 :file => uploaded_test_file("testfile.txt", ""), |
44 :author => User.find(1)) | 44 :author => User.find(1)) |
45 assert a.save | 45 assert a.save |
46 assert_equal 'text/plain', a.content_type | 46 assert_equal 'text/plain', a.content_type |
47 end | 47 end |
48 | 48 |
49 def test_identical_attachments_at_the_same_time_should_not_overwrite | 49 def test_identical_attachments_at_the_same_time_should_not_overwrite |
50 a1 = Attachment.create!(:container => Issue.find(1), | 50 a1 = Attachment.create!(:container => Issue.find(1), |
51 :file => uploaded_test_file("testfile.txt", ""), | 51 :file => uploaded_test_file("testfile.txt", ""), |
52 :author => User.find(1)) | 52 :author => User.find(1)) |
53 a2 = Attachment.create!(:container => Issue.find(1), | 53 a2 = Attachment.create!(:container => Issue.find(1), |
54 :file => uploaded_test_file("testfile.txt", ""), | 54 :file => uploaded_test_file("testfile.txt", ""), |
55 :author => User.find(1)) | 55 :author => User.find(1)) |
56 assert a1.disk_filename != a2.disk_filename | 56 assert a1.disk_filename != a2.disk_filename |
57 end | 57 end |
58 | 58 |
59 def test_diskfilename | 59 def test_diskfilename |
60 assert Attachment.disk_filename("test_file.txt") =~ /^\d{12}_test_file.txt$/ | 60 assert Attachment.disk_filename("test_file.txt") =~ /^\d{12}_test_file.txt$/ |
61 assert_equal 'test_file.txt', Attachment.disk_filename("test_file.txt")[13..-1] | 61 assert_equal 'test_file.txt', Attachment.disk_filename("test_file.txt")[13..-1] |
62 assert_equal '770c509475505f37c2b8fb6030434d6b.txt', Attachment.disk_filename("test_accentué.txt")[13..-1] | 62 assert_equal '770c509475505f37c2b8fb6030434d6b.txt', Attachment.disk_filename("test_accentué.txt")[13..-1] |
63 assert_equal 'f8139524ebb8f32e51976982cd20a85d', Attachment.disk_filename("test_accentué")[13..-1] | 63 assert_equal 'f8139524ebb8f32e51976982cd20a85d', Attachment.disk_filename("test_accentué")[13..-1] |