about summary refs log tree commit diff
path: root/spec/models
diff options
context:
space:
mode:
authorFrancis Chong <francis@ignition.hk>2017-04-26 09:48:12 +0800
committerEugen Rochko <eugen@zeonfederated.com>2017-04-26 03:48:12 +0200
commit193dddb433f27cc61e1977148cbd01d61bb87fbf (patch)
tree1e99680980a3c294b5296e79ab9fbc1dafcd0f13 /spec/models
parent8fe36654efff73cb9b6800f7d1a57e6466f2ded3 (diff)
Add media dimensions (#2448)
* Fixes #1985

- add migration AddMediaAttachmentMeta, which add meta field to media_attachments
- before saving attachment, set file meta if needed
- add meta in api

* add spec

* align the “size” format for image and video

* fix code climate

* fixes media_attachment_spec.rb
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/media_attachment_spec.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index d98f7e696..f6717b7d5 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -11,6 +11,13 @@ RSpec.describe MediaAttachment, type: :model do
     it 'converts original file to mp4' do
       expect(media.file_content_type).to eq 'video/mp4'
     end
+
+    it 'sets meta' do
+      expect(media.file.meta["original"]["width"]).to eq 128
+      expect(media.file.meta["original"]["height"]).to eq 128
+      expect(media.file.meta["original"]["aspect"]).to eq 1.0
+    end
+
   end
 
   describe 'non-animated gif non-conversion' do
@@ -23,5 +30,24 @@ RSpec.describe MediaAttachment, type: :model do
     it 'leaves original file as-is' do
       expect(media.file_content_type).to eq 'image/gif'
     end
+
+    it 'sets meta' do
+      expect(media.file.meta["original"]["width"]).to eq 600
+      expect(media.file.meta["original"]["height"]).to eq 400
+      expect(media.file.meta["original"]["aspect"]).to eq 1.5
+    end
+  end
+
+  describe 'jpeg' do
+    let(:media) { MediaAttachment.create(account: Fabricate(:account), file: attachment_fixture('attachment.jpg')) }
+
+    it 'sets meta for different style' do
+      expect(media.file.meta["original"]["width"]).to eq 600
+      expect(media.file.meta["original"]["height"]).to eq 400
+      expect(media.file.meta["original"]["aspect"]).to eq 1.5
+      expect(media.file.meta["small"]["width"]).to eq 400
+      expect(media.file.meta["small"]["height"]).to eq 267
+      expect(media.file.meta["small"]["aspect"]).to eq 400.0/267
+    end
   end
 end