mplayer-ruby 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,17 @@
1
+ require File.expand_path("teststrap", File.dirname(__FILE__))
2
+
3
+ context "MPlayer::Player" do
4
+ setup do
5
+ mock(Open4).popen4("/usr/bin/mplayer -slave -quiet test/test.mp3") { [true,true,true,true] }
6
+ stub(true).gets { "playback" }
7
+ @player = MPlayer::Slave.new('test/test.mp3')
8
+ end
9
+ asserts("invalid file") { MPlayer::Slave.new('boooger') }.raises ArgumentError,"Invalid File"
10
+ asserts("@file").assigns(:file)
11
+ asserts("@pid").assigns(:pid)
12
+ asserts("@stdin").assigns(:stdin)
13
+ asserts("@stdout").assigns(:stdout)
14
+ asserts("@stderr").assigns(:stderr)
15
+
16
+
17
+ end
@@ -0,0 +1,333 @@
1
+ require File.expand_path("teststrap", File.dirname(__FILE__))
2
+
3
+ context "MPlayer::Player" do
4
+ setup do
5
+ mock(Open4).popen4("/usr/bin/mplayer -slave -quiet test/test.mp3") { [true,true,true,true] }
6
+ stub(true).gets { "playback" }
7
+ @player = MPlayer::Slave.new('test/test.mp3')
8
+ end
9
+
10
+ context "audio_delay" do
11
+
12
+ context "by relative" do
13
+ setup { mock_stdin @player, "audio_delay 5 0" }
14
+ asserts("audio_delay 5") { @player.audio_delay 5 }
15
+ asserts("audio_delay 5,:relative") { @player.audio_delay 5,:relative }
16
+ end
17
+
18
+ context "by absolute" do
19
+ setup { mock_stdin @player, "audio_delay 5 1" }
20
+ asserts("audio_delay 5,:absolute") { @player.audio_delay 5,:absolute }
21
+ end
22
+ end
23
+
24
+ context "sub_delay" do
25
+
26
+ context "absolute" do
27
+ setup { mock_stdin @player, "sub_delay 5 1" }
28
+ asserts("sub_delay 5") { @player.sub_delay 5 }
29
+ asserts("sub_delay 5, :relative") { @player.sub_delay 5,:absolute }
30
+ end
31
+
32
+ context "relative" do
33
+ setup { mock_stdin @player, "sub_delay 5 0" }
34
+ asserts("sub_delay 5, :absolute") { @player.sub_delay 5, :relative }
35
+ end
36
+ end
37
+
38
+ context "sub_step" do
39
+
40
+ context "forward" do
41
+ setup { mock_stdin @player, "sub_step 5" }
42
+ asserts("sub_step 5") { @player.sub_step 5 }
43
+ asserts("sub_step 5,:forward") { @player.sub_step 5, :forward }
44
+ end
45
+
46
+ context "backward" do
47
+ setup { mock_stdin @player, "sub_step -5" }
48
+ asserts("sub_step -5") { @player.sub_step -5 }
49
+ asserts("sub_step 5,:backward") { @player.sub_step 5,:backward }
50
+ end
51
+ end
52
+
53
+ context "osd" do
54
+
55
+ context "toggle" do
56
+ setup { mock_stdin @player, "osd" }
57
+ asserts("osd toggle") { @player.osd }
58
+ end
59
+
60
+ context "set level" do
61
+ setup { mock_stdin @player, "osd 5" }
62
+ asserts("osd 5") { @player.osd 5 }
63
+ end
64
+ end
65
+
66
+ context "osd_show_text" do
67
+
68
+ context "with just string" do
69
+ setup { mock_stdin @player, "osd_show_text hello 0 0"}
70
+ asserts("mock_stdin 'hello'") { @player.osd_show_text 'hello' }
71
+ end
72
+
73
+ context "with duration" do
74
+ setup { mock_stdin @player, "osd_show_text hello 5 0"}
75
+ asserts("mock_stdin 'hello',:duration => 5") { @player.osd_show_text 'hello', :duration => 5 }
76
+ end
77
+
78
+ context "with level" do
79
+ setup { mock_stdin @player, "osd_show_text hello 0 5"}
80
+ asserts("mock_stdin 'hello', :level => 5") { @player.osd_show_text 'hello', :level => 5 }
81
+ end
82
+ end
83
+
84
+ context "osd_show_property_text" do
85
+
86
+ context "with just string" do
87
+ setup { mock_stdin @player, "osd_show_property_text hello 0 0"}
88
+ asserts("mock_stdin 'hello'") { @player.osd_show_property_text 'hello' }
89
+ end
90
+
91
+ context "with duration" do
92
+ setup { mock_stdin @player, "osd_show_property_text hello 5 0"}
93
+ asserts("mock_stdin 'hello',:duration => 5") { @player.osd_show_property_text 'hello', :duration => 5 }
94
+ end
95
+
96
+ context "with level" do
97
+ setup { mock_stdin @player, "osd_show_property_text hello 0 5"}
98
+ asserts("mock_stdin 'hello', :level => 5") { @player.osd_show_property_text 'hello', :level => 5 }
99
+ end
100
+ end
101
+
102
+ %w[contrast gamma brightness hue saturation].each do |setting|
103
+ context setting do
104
+
105
+ context "relative" do
106
+ setup { mock_stdin @player, "#{setting} 5 0" }
107
+ asserts("#{setting} 5, :relative") { @player.method(setting).call(5, :relative) }
108
+ asserts("#{setting} 5") { @player.method(setting).call(5) }
109
+ end
110
+
111
+ context "absolute" do
112
+ setup { mock_stdin @player, "#{setting} 5 1" }
113
+ asserts("#{setting} 5, :absolute") { @player.method(setting).call( 5, :absolute) }
114
+ end
115
+
116
+ asserts("value out of range [-100,100]") { @player.method(setting).call(1000) }.raises(ArgumentError,"Value out of Range -100..100")
117
+ end
118
+ end
119
+
120
+ context "frame_drop" do
121
+
122
+ context "toggle" do
123
+ setup { mock_stdin @player, "frame_drop"}
124
+ asserts("toggles") { @player.frame_drop }
125
+ end
126
+
127
+ context "on" do
128
+ setup { mock_stdin @player, "frame_drop 1"}
129
+ asserts("frame_drop :on") { @player.frame_drop :on }
130
+ end
131
+
132
+ context "off" do
133
+ setup { mock_stdin @player, "frame_drop 0"}
134
+ asserts("frame_drop :off") { @player.frame_drop :off }
135
+ end
136
+ end
137
+
138
+ context "sub_pos" do
139
+ context "by relative" do
140
+ setup { mock_stdin @player, "sub_pos 5 0" }
141
+ asserts("sub_pos 5") { @player.sub_pos 5 }
142
+ asserts("sub_pos 5,:relative") { @player.sub_pos 5,:relative }
143
+ end
144
+
145
+ context "by absolute" do
146
+ setup { mock_stdin @player, "sub_pos 5 1" }
147
+ asserts("sub_pos 5,:absolute") { @player.sub_pos 5,:absolute }
148
+ end
149
+ end
150
+
151
+ context "sub_alignment" do
152
+
153
+ context "toggle" do
154
+ setup { mock_stdin @player, "sub_alignment" }
155
+ asserts("returns true") { @player.sub_alignment }
156
+ end
157
+
158
+ context "top" do
159
+ setup { mock_stdin @player, "sub_alignment 0" }
160
+ asserts("sub_alignment :top") { @player.sub_alignment :top }
161
+ end
162
+
163
+ context "center" do
164
+ setup { mock_stdin @player, "sub_alignment 1" }
165
+ asserts("sub_alignment :top") { @player.sub_alignment :center }
166
+ end
167
+
168
+ context "bottom" do
169
+ setup { mock_stdin @player, "sub_alignment 2" }
170
+ asserts("sub_alignment :top") { @player.sub_alignment :bottom }
171
+ end
172
+ end
173
+
174
+ context "sub_visibility" do
175
+
176
+ context "toggle" do
177
+ setup { mock_stdin @player, "sub_visibility" }
178
+ asserts("sub_visiblity") { @player.sub_visibility }
179
+ end
180
+
181
+ context "on" do
182
+ setup { mock_stdin @player, "sub_visibility 1" }
183
+ asserts("sub_visibility :on") { @player.sub_visibility :on }
184
+ end
185
+
186
+ context "off" do
187
+ setup { mock_stdin @player, "sub_visibility 0" }
188
+ asserts("sub_visibility :off") { @player.sub_visibility :off }
189
+ end
190
+ end
191
+
192
+ context "sub_load" do
193
+
194
+ asserts("invalid file") { @player.sub_load "booger" }.raises ArgumentError,"Invalid File"
195
+ context "valid file" do
196
+ setup { mock_stdin @player, "sub_load test/test.mp3" }
197
+ asserts("sub_load 'test/test.mp3'") { @player.sub_load "test/test.mp3" }
198
+ end
199
+ end
200
+
201
+ context "sub_remove" do
202
+
203
+ context "all" do
204
+ setup { mock_stdin @player, "sub_remove -1" }
205
+ asserts("sub_remove") { @player.sub_remove }
206
+ asserts("sub_remove :all") { @player.sub_remove :all }
207
+ end
208
+
209
+ context "index" do
210
+ setup { mock_stdin @player, "sub_remove 1" }
211
+ asserts("sub_remove 1") { @player.sub_remove 1 }
212
+ end
213
+ end
214
+
215
+ context "sub_select" do
216
+
217
+ context "select" do
218
+ setup { mock_stdin @player, "sub_select 1" }
219
+ asserts("sub_select 1") { @player.sub_select 1 }
220
+ end
221
+
222
+ context "cycle" do
223
+ setup { mock_stdin @player, "sub_select -2" }
224
+ asserts("sub_select") { @player.sub_select }
225
+ asserts("sub_select :cycle") { @player.sub_select :cycle }
226
+ end
227
+ end
228
+
229
+ context "sub_source" do
230
+
231
+ context "sub" do
232
+ setup { mock_stdin @player, "sub_source 0" }
233
+ asserts("sub_source :sub") { @player.sub_source :sub }
234
+ end
235
+
236
+ context "vobsub" do
237
+ setup { mock_stdin @player, "sub_source 1"}
238
+ asserts("sub_source :vobsub") { @player.sub_source :vobsub }
239
+ end
240
+
241
+ context "demux" do
242
+ setup { mock_stdin @player, "sub_source 2" }
243
+ asserts("sub_source :demux") { @player.sub_source :demux }
244
+ end
245
+
246
+ context "off" do
247
+ setup { mock_stdin @player, "sub_source -1" }
248
+ asserts("sub_source :off") { @player.sub_source :off }
249
+ end
250
+
251
+ context "cycle" do
252
+ setup { mock_stdin @player, "sub_source -2" }
253
+ asserts("sub_source :cycle") { @player.sub_source :cycle }
254
+ asserts("sub_source") { @player.sub_source }
255
+ end
256
+ end
257
+
258
+ %w[sub_file sub_vob sub_demux].each do |sub|
259
+
260
+ context sub do
261
+
262
+ context "index" do
263
+ setup { mock_stdin @player, "#{sub} 1" }
264
+ asserts("#{sub} 1") { @player.method(sub).call 1 }
265
+ end
266
+
267
+ context "off" do
268
+ setup { mock_stdin @player, "#{sub} -1" }
269
+ asserts("#{sub} :off") { @player.method(sub).call :off}
270
+ end
271
+
272
+ context "cycle" do
273
+ setup { mock_stdin @player, "#{sub} -2" }
274
+ asserts("#{sub} :cycle") { @player.method(sub).call :cycle }
275
+ asserts("#{sub}") { @player.method(sub).call }
276
+ end
277
+ end
278
+ end
279
+
280
+ context "sub_scale" do
281
+ context "by relative" do
282
+ setup { mock_stdin @player, "sub_scale 5 0" }
283
+ asserts("sub_scale 5") { @player.sub_scale 5 }
284
+ asserts("sub_scale 5,:relative") { @player.sub_scale 5,:relative }
285
+ end
286
+
287
+ context "by absolute" do
288
+ setup { mock_stdin @player, "sub_scale 5 1" }
289
+ asserts("sub_scale 5,:absolute") { @player.sub_scale 5,:absolute }
290
+ end
291
+ end
292
+
293
+ %w[switch_angle switch_audio switch_title].each do |switch|
294
+
295
+ context switch do
296
+
297
+ context "select" do
298
+ setup { mock_stdin @player, "#{switch} 1" }
299
+ asserts("#{switch} 1") { @player.method(switch).call 1 }
300
+ end
301
+
302
+ context "cycle" do
303
+ setup { mock_stdin @player, "#{switch} -2" }
304
+ asserts("#{switch}") { @player.method(switch).call }
305
+ asserts("#{switch} :cycle") { @player.method(switch).call :cycle }
306
+ end
307
+
308
+ end
309
+ end
310
+
311
+ context "switch_ratio" do
312
+ setup { mock_stdin @player,"switch_ratio 1" }
313
+ asserts("switch_ratio 1") { @player.switch_ratio 1 }
314
+ end
315
+
316
+ context "switch_vsync" do
317
+ context "toggle" do
318
+ setup { mock_stdin @player, "switch_vsync" }
319
+ asserts("switch_vsynce") { @player.switch_vsync }
320
+ end
321
+
322
+ context "on" do
323
+ setup { mock_stdin @player, "switch_vsync 1" }
324
+ asserts("switch_vsync :on") { @player.switch_vsync :on }
325
+ end
326
+
327
+ context "off" do
328
+ setup { mock_stdin @player, "switch_vsync 0" }
329
+ asserts("switch_vsync :off") { @player.switch_vsync :off }
330
+ end
331
+ end
332
+
333
+ end
File without changes
@@ -0,0 +1,16 @@
1
+ require 'rubygems'
2
+ require 'riot'
3
+ require 'rr'
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
+ require 'mplayer-ruby'
6
+
7
+ Riot.rr
8
+
9
+ def mock_stdin(player,input,output="")
10
+ mock(player.stdin).puts(input) { output }
11
+ end
12
+
13
+ def mock_send(player,input,output="",match=nil)
14
+ return mock(player).send(input) { output } unless match
15
+ mock(player).send(input,match) { output }
16
+ end
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mplayer-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Arthur Chiu
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-02-01 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: riot
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.10.11
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rr
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.10.5
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: open4
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.1
44
+ version:
45
+ description: A Ruby wrapper for MPlayer
46
+ email: mr.arthur.chiu@gmail.com
47
+ executables: []
48
+
49
+ extensions: []
50
+
51
+ extra_rdoc_files:
52
+ - LICENSE
53
+ - README.rdoc
54
+ - TODO
55
+ files:
56
+ - .document
57
+ - .gitignore
58
+ - LICENSE
59
+ - README.rdoc
60
+ - Rakefile
61
+ - TODO
62
+ - VERSION
63
+ - examples/general_playback.rb
64
+ - lib/mplayer-ruby.rb
65
+ - lib/mplayer-ruby/slave.rb
66
+ - lib/mplayer-ruby/slave_commands.rb
67
+ - lib/mplayer-ruby/slave_video_commands.rb
68
+ - mplayer-ruby.gemspec
69
+ - test.watchr
70
+ - test/mplayer-ruby_test.rb
71
+ - test/slave_commands_test.rb
72
+ - test/slave_test.rb
73
+ - test/slave_video_commands_test.rb
74
+ - test/test.mp3
75
+ - test/teststrap.rb
76
+ has_rdoc: true
77
+ homepage: http://github.com/achiu/mplayer-ruby
78
+ licenses: []
79
+
80
+ post_install_message:
81
+ rdoc_options:
82
+ - --charset=UTF-8
83
+ require_paths:
84
+ - lib
85
+ required_ruby_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ version:
91
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: "0"
96
+ version:
97
+ requirements: []
98
+
99
+ rubyforge_project:
100
+ rubygems_version: 1.3.5
101
+ signing_key:
102
+ specification_version: 3
103
+ summary: Ruby wrapper for MPlayer
104
+ test_files:
105
+ - test/mplayer-ruby_test.rb
106
+ - test/slave_commands_test.rb
107
+ - test/slave_test.rb
108
+ - test/slave_video_commands_test.rb
109
+ - test/teststrap.rb
110
+ - examples/general_playback.rb