viddl 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,113 @@
1
+ require "helper"
2
+
3
+ describe Viddl::Video::Clip::Crop do
4
+
5
+ context ".options_formatted" do
6
+
7
+ context "with no options" do
8
+
9
+ it "returns empty hash" do
10
+ options = {}
11
+ opts = Viddl::Video::Clip::Crop.send(:options_formatted, options)
12
+ expect(opts).to(be_empty)
13
+ end
14
+
15
+ end
16
+
17
+ context "with crop properties" do
18
+
19
+ it "returns crop properties" do
20
+ options = {
21
+ crop: {
22
+ x: 100,
23
+ y: 110,
24
+ width: 120,
25
+ height: 130
26
+ }
27
+ }
28
+ opts = Viddl::Video::Clip::Crop.send(:options_formatted, options)
29
+ expect(opts).to_not(be_empty)
30
+ expect(opts[:crop]).to_not(be_nil)
31
+ expect(opts[:crop]).to_not(be_empty)
32
+ expect(opts[:crop][:x]).to(eq(100))
33
+ expect(opts[:crop][:y]).to(eq(110))
34
+ expect(opts[:crop][:width]).to(eq(120))
35
+ expect(opts[:crop][:height]).to(eq(130))
36
+ expect(opts.values.compact.count).to(eq(1))
37
+ end
38
+
39
+ end
40
+
41
+ context "with mixed types" do
42
+
43
+ it "returns integers" do
44
+ options = {
45
+ crop: {
46
+ x: 60,
47
+ y: "70",
48
+ width: "80",
49
+ height: 90
50
+ }
51
+ }
52
+ opts = Viddl::Video::Clip::Crop.send(:options_formatted, options)
53
+ expect(opts).to_not(be_empty)
54
+ expect(opts[:crop]).to_not(be_nil)
55
+ expect(opts[:crop]).to_not(be_empty)
56
+ expect(opts[:crop][:x]).to(eq(60))
57
+ expect(opts[:crop][:y]).to(eq(70))
58
+ expect(opts[:crop][:width]).to(eq(80))
59
+ expect(opts[:crop][:height]).to(eq(90))
60
+ expect(opts.values.compact.count).to(eq(1))
61
+ end
62
+
63
+ end
64
+
65
+ context "incomplete crop properties" do
66
+
67
+ it "raises" do
68
+ options = {
69
+ crop: {
70
+ x: 20
71
+ }
72
+ }
73
+ expect {
74
+ Viddl::Video::Clip::Crop.send(:options_formatted, options)
75
+ }.to(raise_error(RuntimeError))
76
+ end
77
+
78
+ end
79
+
80
+ end
81
+
82
+ context ".filter_args" do
83
+
84
+ context "with no options" do
85
+
86
+ it "returns blank string" do
87
+ options = {}
88
+ args = Viddl::Video::Clip::Crop.send(:filter_args, options)
89
+ expect(args).to(be_nil)
90
+ end
91
+
92
+ end
93
+
94
+ context "with crop properties" do
95
+
96
+ it "returns crop arg" do
97
+ options = {
98
+ crop: {
99
+ x: 20,
100
+ y: 30,
101
+ width: 40,
102
+ height: 50
103
+ }
104
+ }
105
+ args = Viddl::Video::Clip::Crop.send(:filter_args, options)
106
+ expect(args).to(eq("crop=40:50:20:30"))
107
+ end
108
+
109
+ end
110
+
111
+ end
112
+
113
+ end
@@ -0,0 +1,246 @@
1
+ require "helper"
2
+
3
+ describe Viddl::Video::Clip::Cut do
4
+
5
+ context ".options_formatted" do
6
+
7
+ context "with no args" do
8
+
9
+ it "returns hash with no values" do
10
+ options = {}
11
+ formatted_opts = Viddl::Video::Clip::Cut.send(:options_formatted, options)
12
+ expect(formatted_opts.values.compact).to(be_empty)
13
+ end
14
+
15
+ end
16
+
17
+ context "with start time only" do
18
+
19
+ before(:each) do
20
+ @options = {
21
+ start: 12
22
+ }
23
+ @formatted_opts = Viddl::Video::Clip::Cut.send(:options_formatted, @options)
24
+ end
25
+
26
+ it "returns hash with only start time" do
27
+ expect(@formatted_opts[:start]).not_to(be_nil)
28
+ expect(@formatted_opts.values.compact.count).to(eq(1))
29
+ end
30
+
31
+ it "has correct start time value" do
32
+ expect(@formatted_opts[:start]).to(eq(12))
33
+ end
34
+
35
+ end
36
+
37
+ context "with end time only" do
38
+
39
+ before(:each) do
40
+ @options = {
41
+ end: 14
42
+ }
43
+ @formatted_opts = Viddl::Video::Clip::Cut.send(:options_formatted, @options)
44
+ end
45
+
46
+ it "returns hash with only start time" do
47
+ expect(@formatted_opts[:duration]).not_to(be_nil)
48
+ expect(@formatted_opts.values.compact.count).to(eq(1))
49
+ end
50
+
51
+ it "has correct end time value" do
52
+ expect(@formatted_opts[:duration]).to(eq(14))
53
+ end
54
+
55
+ end
56
+
57
+ context "with duration only" do
58
+
59
+ before(:each) do
60
+ @options = {
61
+ duration: 16
62
+ }
63
+ @formatted_opts = Viddl::Video::Clip::Cut.send(:options_formatted, @options)
64
+ end
65
+
66
+ it "returns hash with only start time" do
67
+ expect(@formatted_opts[:duration]).not_to(be_nil)
68
+ expect(@formatted_opts.values.compact.count).to(eq(1))
69
+ end
70
+
71
+ it "has correct end time value" do
72
+ expect(@formatted_opts[:duration]).to(eq(16))
73
+ end
74
+
75
+ end
76
+
77
+ context "with end time and duration" do
78
+
79
+ it "raises" do
80
+ options = {
81
+ duration: 3,
82
+ end: 15
83
+ }
84
+ expect {
85
+ Viddl::Video::Clip::Cut.send(:options_formatted, options)
86
+ }.to(raise_error(RuntimeError))
87
+ end
88
+
89
+ end
90
+
91
+ context "with start time and end time" do
92
+
93
+ before(:each) do
94
+ @options = {
95
+ start: 22,
96
+ end: 25
97
+ }
98
+ @formatted_opts = Viddl::Video::Clip::Cut.send(:options_formatted, @options)
99
+ end
100
+
101
+ it "returns hash with start time and duration" do
102
+ expect(@formatted_opts[:start]).not_to(be_nil)
103
+ expect(@formatted_opts[:duration]).not_to(be_nil)
104
+ expect(@formatted_opts.values.compact.count).to(eq(2))
105
+ end
106
+
107
+ it "has correct values" do
108
+ expect(@formatted_opts[:start]).to(eq(22))
109
+ expect(@formatted_opts[:duration]).to(eq(3))
110
+ end
111
+
112
+ end
113
+
114
+ context "with start time and duration" do
115
+
116
+ before(:each) do
117
+ @options = {
118
+ start: 2,
119
+ duration: 6
120
+ }
121
+ @formatted_opts = Viddl::Video::Clip::Cut.send(:options_formatted, @options)
122
+ end
123
+
124
+ it "returns hash with start time and duration" do
125
+ expect(@formatted_opts[:start]).not_to(be_nil)
126
+ expect(@formatted_opts[:duration]).not_to(be_nil)
127
+ expect(@formatted_opts.values.compact.count).to(eq(2))
128
+ end
129
+
130
+ it "has correct values" do
131
+ expect(@formatted_opts[:start]).to(eq(2))
132
+ expect(@formatted_opts[:duration]).to(eq(6))
133
+ end
134
+
135
+ end
136
+
137
+ context "with start time and end time and duration" do
138
+
139
+ it "raises" do
140
+ options = {
141
+ start: 10,
142
+ duration: 3,
143
+ end: 15
144
+ }
145
+ expect {
146
+ Viddl::Video::Clip::Cut.send(:options_formatted, options)
147
+ }.to(raise_error(RuntimeError))
148
+ end
149
+
150
+ end
151
+
152
+ end
153
+
154
+ context ".duration" do
155
+
156
+ context "with no options" do
157
+
158
+ it "returns nil" do
159
+ options = {}
160
+ args = Viddl::Video::Clip::Cut.send(:duration, options)
161
+ expect(args).to(be_nil)
162
+ end
163
+
164
+ end
165
+
166
+ context "with duration" do
167
+
168
+ it "has correct duration" do
169
+ options = {
170
+ duration: 12
171
+ }
172
+ args = Viddl::Video::Clip::Cut.send(:duration, options)
173
+ expect(args).to(eq(12))
174
+ end
175
+
176
+ end
177
+
178
+ context "with end time" do
179
+
180
+ it "has correct duration" do
181
+ options = {
182
+ start: 10,
183
+ end: 15
184
+ }
185
+ args = Viddl::Video::Clip::Cut.send(:duration, options)
186
+ expect(args).to(eq(5))
187
+ end
188
+
189
+ end
190
+
191
+ context "with end time and duration" do
192
+
193
+ it "raises" do
194
+ options = {
195
+ duration: 3,
196
+ end: 15
197
+ }
198
+ expect {
199
+ Viddl::Video::Clip::Cut.send(:duration, options)
200
+ }.to(raise_error(RuntimeError))
201
+ end
202
+
203
+ end
204
+
205
+ end
206
+
207
+ context ".args" do
208
+
209
+ context "with no options" do
210
+
211
+ it "return nil" do
212
+ options = {}
213
+ args = Viddl::Video::Clip::Cut.send(:args, options)
214
+ expect(args).to(be_nil)
215
+ end
216
+
217
+ end
218
+
219
+ context "with only start time" do
220
+
221
+ it "has correct args" do
222
+ options = {
223
+ start: 10
224
+ }
225
+ args = Viddl::Video::Clip::Cut.send(:args, options)
226
+ expect(args).to(eq("-ss 10"))
227
+ end
228
+
229
+ end
230
+
231
+ context "with start time and duration" do
232
+
233
+ it "has correct args" do
234
+ options = {
235
+ start: 10,
236
+ duration: 15
237
+ }
238
+ args = Viddl::Video::Clip::Cut.send(:args, options)
239
+ expect(args).to(eq("-ss 10 -t 15"))
240
+ end
241
+
242
+ end
243
+
244
+ end
245
+
246
+ end
@@ -0,0 +1,136 @@
1
+ require "helper"
2
+
3
+ describe Viddl::Video::Clip::Resize do
4
+
5
+ context ".options_formatted" do
6
+
7
+ context "with no options" do
8
+
9
+ it "returns empty hash" do
10
+ options = {}
11
+ opts = Viddl::Video::Clip::Resize.send(:options_formatted, options)
12
+ expect(opts).to(be_empty)
13
+ end
14
+
15
+ end
16
+
17
+ context "with width" do
18
+
19
+ it "returns only width" do
20
+ options = {
21
+ width: 640
22
+ }
23
+ opts = Viddl::Video::Clip::Resize.send(:options_formatted, options)
24
+ expect(opts).to_not(be_empty)
25
+ expect(opts[:width]).to_not(be_nil)
26
+ expect(opts[:width]).to(eq(640))
27
+ expect(opts.values.compact.count).to(eq(1))
28
+ end
29
+
30
+ end
31
+
32
+ context "with height" do
33
+
34
+ it "returns only height" do
35
+ options = {
36
+ height: 480
37
+ }
38
+ opts = Viddl::Video::Clip::Resize.send(:options_formatted, options)
39
+ expect(opts).to_not(be_empty)
40
+ expect(opts[:height]).to_not(be_nil)
41
+ expect(opts[:height]).to(eq(480))
42
+ expect(opts.values.compact.count).to(eq(1))
43
+ end
44
+
45
+ end
46
+
47
+ context "with both width and height" do
48
+
49
+ it "returns only height" do
50
+ options = {
51
+ width: 1024,
52
+ height: 768
53
+ }
54
+ opts = Viddl::Video::Clip::Resize.send(:options_formatted, options)
55
+ expect(opts).to_not(be_empty)
56
+ expect(opts[:width]).to_not(be_nil)
57
+ expect(opts[:width]).to(eq(1024))
58
+ expect(opts[:height]).to_not(be_nil)
59
+ expect(opts[:height]).to(eq(768))
60
+ expect(opts.values.compact.count).to(eq(2))
61
+ end
62
+
63
+ end
64
+
65
+ context "with mixed types" do
66
+
67
+ it "returns only ints" do
68
+ options = {
69
+ width: "1920",
70
+ height: 1280
71
+ }
72
+ opts = Viddl::Video::Clip::Resize.send(:options_formatted, options)
73
+ expect(opts).to_not(be_empty)
74
+ expect(opts[:width]).to_not(be_nil)
75
+ expect(opts[:width]).to(eq(1920))
76
+ expect(opts[:height]).to_not(be_nil)
77
+ expect(opts[:height]).to(eq(1280))
78
+ expect(opts.values.compact.count).to(eq(2))
79
+ end
80
+
81
+ end
82
+
83
+ end
84
+
85
+ context ".filter_args" do
86
+
87
+ context "with no options" do
88
+
89
+ it "returns blank string" do
90
+ options = {}
91
+ args = Viddl::Video::Clip::Resize.send(:filter_args, options)
92
+ expect(args).to(be_nil)
93
+ end
94
+
95
+ end
96
+
97
+ context "with only width" do
98
+
99
+ it "returns width and -1 height" do
100
+ options = {
101
+ width: 1024
102
+ }
103
+ args = Viddl::Video::Clip::Resize.send(:filter_args, options)
104
+ expect(args).to(eq("scale=1024:-1"))
105
+ end
106
+
107
+ end
108
+
109
+ context "with only height" do
110
+
111
+ it "returns height and -1 width" do
112
+ options = {
113
+ height: 768
114
+ }
115
+ args = Viddl::Video::Clip::Resize.send(:filter_args, options)
116
+ expect(args).to(eq("scale=-1:768"))
117
+ end
118
+
119
+ end
120
+
121
+ context "with width and height" do
122
+
123
+ it "returns height and width arg" do
124
+ options = {
125
+ width: 1280,
126
+ height: 720
127
+ }
128
+ args = Viddl::Video::Clip::Resize.send(:filter_args, options)
129
+ expect(args).to(eq("scale=1280:720"))
130
+ end
131
+
132
+ end
133
+
134
+ end
135
+
136
+ end