diff --git a/test/fixtures/attachments.yml b/test/fixtures/attachments.yml index 438e212..57bd238 100644 --- a/test/fixtures/attachments.yml +++ b/test/fixtures/attachments.yml @@ -182,3 +182,29 @@ attachments_015: author_id: 2 content_type: text/x-diff description: attachement of a private issue +attachments_016: + content_type: image/png + downloads: 0 + created_on: 2010-11-23 16:14:50 +09:00 + disk_filename: 101123161450_testfile_1.png + container_id: 14 + digest: 8e0294de2441577c529f170b6fb8f638 + id: 16 + container_type: Issue + description: "" + filename: testfile.png + filesize: 2654 + author_id: 2 +attachments_017: + content_type: image/png + downloads: 0 + created_on: 2010-12-23 16:14:50 +09:00 + disk_filename: 101223161450_testfile_2.png + container_id: 14 + digest: 6bc2963e8d7ea0d3e68d12d1fba3d6ca + id: 17 + container_type: Issue + description: "" + filename: testfile.PNG + filesize: 3582 + author_id: 2 diff --git a/test/fixtures/files/101123161450_testfile_1.png b/test/fixtures/files/101123161450_testfile_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6dad7f1d83781a2bb8216cd5a353205cced12d74 GIT binary patch literal 2654 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 X3w+(}KB@{NXCRAf)+TjVyp#S7#{result}

", textilizable(text, :attachments => attachments) } end + def test_attached_images_should_read_later + Attachment.storage_path = "#{Rails.root}/test/fixtures/files" + a1 = Attachment.find(16) + assert_equal "testfile.png", a1.filename + assert a1.readable? + assert (! a1.visible?(User.anonymous)) + assert a1.visible?(User.find(2)) + a2 = Attachment.find(17) + assert_equal "testfile.PNG", a2.filename + assert a2.readable? + assert (! a2.visible?(User.anonymous)) + assert a2.visible?(User.find(2)) + assert a1.created_on < a2.created_on + + to_test = { + 'Inline image: !testfile.png!' => + 'Inline image: ', + 'Inline image: !Testfile.PNG!' => + 'Inline image: ', + } + attachments = [a1, a2] + to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text, :attachments => attachments) } + end + def test_textile_external_links to_test = { 'This is a "link":http://foo.bar' => 'This is a link',