kaltura-client 3.3.0 → 14.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +7 -0
  2. data/README +23 -23
  3. data/lib/kaltura_client.rb +2054 -1860
  4. data/lib/kaltura_client_base.rb +4 -1
  5. data/lib/kaltura_enums.rb +612 -36
  6. data/lib/kaltura_plugins/kaltura_activiti_business_process_notification_client_plugin.rb +96 -0
  7. data/lib/kaltura_plugins/kaltura_ad_cue_point_client_plugin.rb +46 -17
  8. data/lib/kaltura_plugins/kaltura_admin_console_client_plugin.rb +61 -251
  9. data/lib/kaltura_plugins/kaltura_annotation_client_plugin.rb +131 -60
  10. data/lib/kaltura_plugins/kaltura_aspera_client_plugin.rb +62 -0
  11. data/lib/kaltura_plugins/kaltura_attachment_client_plugin.rb +83 -55
  12. data/lib/kaltura_plugins/kaltura_audit_client_plugin.rb +613 -0
  13. data/lib/kaltura_plugins/kaltura_avn_distribution_client_plugin.rb +109 -0
  14. data/lib/kaltura_plugins/kaltura_bpm_event_notification_integration_client_plugin.rb +61 -0
  15. data/lib/kaltura_plugins/kaltura_bulk_upload_client_plugin.rb +17 -19
  16. data/lib/kaltura_plugins/kaltura_bulk_upload_csv_client_plugin.rb +7 -6
  17. data/lib/kaltura_plugins/kaltura_bulk_upload_filter_client_plugin.rb +33 -13
  18. data/lib/kaltura_plugins/kaltura_bulk_upload_xml_client_plugin.rb +1 -2
  19. data/lib/kaltura_plugins/kaltura_business_process_notification_client_plugin.rb +545 -0
  20. data/lib/kaltura_plugins/kaltura_caption_client_plugin.rb +235 -114
  21. data/lib/kaltura_plugins/kaltura_caption_search_client_plugin.rb +86 -29
  22. data/lib/kaltura_plugins/kaltura_cielo24client_plugin.rb +39 -17
  23. data/lib/kaltura_plugins/kaltura_code_cue_point_client_plugin.rb +49 -18
  24. data/lib/kaltura_plugins/kaltura_comcast_mrss_distribution_client_plugin.rb +163 -0
  25. data/lib/kaltura_plugins/kaltura_content_distribution_client_plugin.rb +846 -439
  26. data/lib/kaltura_plugins/kaltura_cross_kaltura_distribution_client_plugin.rb +232 -0
  27. data/lib/kaltura_plugins/kaltura_cue_point_client_plugin.rb +229 -74
  28. data/lib/kaltura_plugins/kaltura_dailymotion_distribution_client_plugin.rb +199 -0
  29. data/lib/kaltura_plugins/kaltura_document_client_plugin.rb +140 -97
  30. data/lib/kaltura_plugins/kaltura_double_click_distribution_client_plugin.rb +142 -0
  31. data/lib/kaltura_plugins/kaltura_drm_client_plugin.rb +635 -0
  32. data/lib/kaltura_plugins/kaltura_drop_folder_client_plugin.rb +485 -196
  33. data/lib/kaltura_plugins/kaltura_drop_folder_xml_bulk_upload_client_plugin.rb +19 -1
  34. data/lib/kaltura_plugins/kaltura_elastic_search_client_plugin.rb +1228 -0
  35. data/lib/kaltura_plugins/kaltura_email_notification_client_plugin.rb +178 -89
  36. data/lib/kaltura_plugins/kaltura_event_cue_point_client_plugin.rb +10 -4
  37. data/lib/kaltura_plugins/kaltura_event_notification_client_plugin.rb +205 -95
  38. data/lib/kaltura_plugins/kaltura_external_media_client_plugin.rb +43 -32
  39. data/lib/kaltura_plugins/kaltura_facebook_distribution_client_plugin.rb +183 -0
  40. data/lib/kaltura_plugins/kaltura_fairplay_client_plugin.rb +62 -0
  41. data/lib/kaltura_plugins/kaltura_feed_drop_folder_client_plugin.rb +40 -16
  42. data/lib/kaltura_plugins/kaltura_file_sync_client_plugin.rb +182 -67
  43. data/lib/kaltura_plugins/kaltura_freewheel_distribution_client_plugin.rb +157 -0
  44. data/lib/kaltura_plugins/kaltura_freewheel_generic_distribution_client_plugin.rb +172 -0
  45. data/lib/kaltura_plugins/kaltura_ftp_distribution_client_plugin.rb +258 -0
  46. data/lib/kaltura_plugins/kaltura_http_notification_client_plugin.rb +154 -102
  47. data/lib/kaltura_plugins/kaltura_hulu_distribution_client_plugin.rb +213 -0
  48. data/lib/kaltura_plugins/kaltura_idetic_distribution_client_plugin.rb +131 -0
  49. data/lib/kaltura_plugins/kaltura_integration_client_plugin.rb +19 -10
  50. data/lib/kaltura_plugins/kaltura_kaltura_internal_tools_client_plugin.rb +1 -87
  51. data/lib/kaltura_plugins/kaltura_kontiki_client_plugin.rb +19 -10
  52. data/lib/kaltura_plugins/kaltura_like_client_plugin.rb +45 -25
  53. data/lib/kaltura_plugins/kaltura_metadata_client_plugin.rb +435 -213
  54. data/lib/kaltura_plugins/kaltura_metro_pcs_distribution_client_plugin.rb +155 -0
  55. data/lib/kaltura_plugins/kaltura_msn_distribution_client_plugin.rb +186 -0
  56. data/lib/kaltura_plugins/kaltura_play_ready_client_plugin.rb +482 -0
  57. data/lib/kaltura_plugins/kaltura_poll_client_plugin.rb +116 -0
  58. data/lib/kaltura_plugins/kaltura_push_notification_client_plugin.rb +154 -0
  59. data/lib/kaltura_plugins/kaltura_quick_play_distribution_client_plugin.rb +187 -0
  60. data/lib/kaltura_plugins/kaltura_quiz_client_plugin.rb +155 -58
  61. data/lib/kaltura_plugins/kaltura_schedule_bulk_upload_client_plugin.rb +107 -0
  62. data/lib/kaltura_plugins/kaltura_schedule_client_plugin.rb +1580 -0
  63. data/lib/kaltura_plugins/kaltura_schedule_drop_folder_client_plugin.rb +52 -0
  64. data/lib/kaltura_plugins/kaltura_scheduled_task_client_plugin.rb +277 -71
  65. data/lib/kaltura_plugins/kaltura_scheduled_task_content_distribution_client_plugin.rb +4 -3
  66. data/lib/kaltura_plugins/kaltura_scheduled_task_event_notification_client_plugin.rb +4 -3
  67. data/lib/kaltura_plugins/kaltura_scheduled_task_metadata_client_plugin.rb +10 -7
  68. data/lib/kaltura_plugins/kaltura_short_link_client_plugin.rb +113 -66
  69. data/lib/kaltura_plugins/kaltura_system_partner_client_plugin.rb +81 -517
  70. data/lib/kaltura_plugins/kaltura_tag_search_client_plugin.rb +63 -30
  71. data/lib/kaltura_plugins/kaltura_thumb_cue_point_client_plugin.rb +40 -16
  72. data/lib/kaltura_plugins/kaltura_transcript_client_plugin.rb +44 -8
  73. data/lib/kaltura_plugins/kaltura_unicorn_distribution_client_plugin.rb +212 -0
  74. data/lib/kaltura_plugins/kaltura_var_console_client_plugin.rb +75 -74
  75. data/lib/kaltura_plugins/kaltura_velocix_client_plugin.rb +10 -4
  76. data/lib/kaltura_plugins/kaltura_view_history_client_plugin.rb +112 -0
  77. data/lib/kaltura_plugins/kaltura_virus_scan_client_plugin.rb +119 -59
  78. data/lib/kaltura_plugins/kaltura_voicebase_client_plugin.rb +34 -19
  79. data/lib/kaltura_plugins/kaltura_webex_drop_folder_client_plugin.rb +207 -0
  80. data/lib/kaltura_plugins/kaltura_widevine_client_plugin.rb +299 -0
  81. data/lib/kaltura_plugins/kaltura_wowza_client_plugin.rb +22 -13
  82. data/lib/kaltura_plugins/kaltura_yahoo_distribution_client_plugin.rb +155 -0
  83. data/lib/kaltura_plugins/kaltura_you_tube_distribution_client_plugin.rb +382 -0
  84. data/lib/kaltura_plugins/kaltura_youtube_api_distribution_client_plugin.rb +219 -0
  85. data/lib/kaltura_types.rb +10305 -4858
  86. data/test/access_control_service_test.rb +43 -20
  87. data/test/base_entry_service_test.rb +57 -67
  88. data/test/configuration_test.rb +2 -34
  89. data/test/cue_point_service_test.rb +1 -1
  90. data/test/data_service_test.rb +19 -5
  91. data/test/document_service_test.rb +1 -1
  92. data/test/media_service_test.rb +296 -296
  93. data/test/metadata_profile_service_test.rb +1 -1
  94. metadata +52 -21
@@ -34,7 +34,7 @@ class CuePointServiceTest < Test::Unit::TestCase
34
34
 
35
35
  # creates a media_entry
36
36
  media_entry = Kaltura::KalturaMediaEntry.new
37
- media_entry.name = "kaltura_test1"
37
+ media_entry.name = "kaltura_test_cuepointservicetest_" + Time.now.getutc.strftime("%d/%m/%Y %H:%M:%S:%L")
38
38
  media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
39
39
  video_file = File.open("test/media/test.wmv")
40
40
 
@@ -26,6 +26,8 @@
26
26
  # @ignore
27
27
  # ===================================================================================================
28
28
  require 'test_helper'
29
+ require 'net/http'
30
+ require 'net/https'
29
31
  require 'open-uri'
30
32
 
31
33
  class DataServiceTest < Test::Unit::TestCase
@@ -34,7 +36,7 @@ class DataServiceTest < Test::Unit::TestCase
34
36
  should "get the file url with data content" do
35
37
 
36
38
  data_entry = Kaltura::KalturaDataEntry.new
37
- data_entry.name = "kaltura_test"
39
+ data_entry.name = "kaltura_test_dataservicetest_" + Time.now.getutc.strftime("%d/%m/%Y %H:%M:%S:%L")
38
40
  data_entry.data_content = @content
39
41
 
40
42
  created_entry = @client.data_service.add(data_entry)
@@ -43,7 +45,13 @@ class DataServiceTest < Test::Unit::TestCase
43
45
 
44
46
  file_url = @client.data_service.serve(created_entry.id)
45
47
 
46
- assert_equal @content, open(file_url).read
48
+ uri = URI.parse(file_url)
49
+ http = Net::HTTP.new(uri.host, uri.port)
50
+ http.use_ssl = (uri.scheme == 'https')
51
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
52
+ request = Net::HTTP::Get.new(uri.request_uri)
53
+ response = http.request(request)
54
+ assert_true (response.class == Net::HTTPFound || response.class == Net::HTTPOK)
47
55
 
48
56
  assert_nil @client.data_service.delete(created_entry.id)
49
57
  end
@@ -52,7 +60,7 @@ class DataServiceTest < Test::Unit::TestCase
52
60
  should "get the file url with data content when the forceProxy is 0" do
53
61
 
54
62
  data_entry = Kaltura::KalturaDataEntry.new
55
- data_entry.name = "kaltura_test"
63
+ data_entry.name = "kaltura_test_dataservicetest_" + Time.now.getutc.strftime("%d/%m/%Y %H:%M:%S:%L")
56
64
  data_entry.data_content = @content
57
65
 
58
66
  created_entry = @client.data_service.add(data_entry)
@@ -60,8 +68,14 @@ class DataServiceTest < Test::Unit::TestCase
60
68
  assert_not_nil created_entry.id
61
69
 
62
70
  file_url = @client.data_service.serve(created_entry.id, nil, false)
63
-
64
- assert_equal @content, open(file_url).read
71
+
72
+ uri = URI.parse(file_url)
73
+ http = Net::HTTP.new(uri.host, uri.port)
74
+ http.use_ssl = (uri.scheme == 'https')
75
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
76
+ request = Net::HTTP::Get.new(uri.request_uri)
77
+ response = http.request(request)
78
+ assert_true (response.class == Net::HTTPFound || response.class == Net::HTTPOK)
65
79
 
66
80
  assert_nil @client.data_service.delete(created_entry.id)
67
81
  end
@@ -35,7 +35,7 @@ class DocumentServiceTest < Test::Unit::TestCase
35
35
  document_entry_filter = Kaltura::KalturaDocumentEntryFilter.new
36
36
  filter_pager = Kaltura::KalturaFilterPager.new
37
37
 
38
- document_list = @client.document_service.list(document_entry_filter, filter_pager)
38
+ document_list = @client.documents_service.list(document_entry_filter, filter_pager)
39
39
  assert_not_nil document_list.total_count
40
40
  end
41
41
  end
@@ -1,296 +1,296 @@
1
- # coding: utf-8
2
-
3
- # ===================================================================================================
4
- # _ __ _ _
5
- # | |/ /__ _| | |_ _ _ _ _ __ _
6
- # | ' </ _` | | _| || | '_/ _` |
7
- # |_|\_\__,_|_|\__|\_,_|_| \__,_|
8
- #
9
- # This file is part of the Kaltura Collaborative Media Suite which allows users
10
- # to do with audio, video, and animation what Wiki platfroms allow them to do with
11
- # text.
12
- #
13
- # Copyright (C) 2006-2011 Kaltura Inc.
14
- #
15
- # This program is free software: you can redistribute it and/or modify
16
- # it under the terms of the GNU Affero General Public License as
17
- # published by the Free Software Foundation, either version 3 of the
18
- # License, or (at your option) any later version.
19
- #
20
- # This program is distributed in the hope that it will be useful,
21
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
22
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
- # GNU Affero General Public License for more details.
24
- #
25
- # You should have received a copy of the GNU Affero General Public License
26
- # along with this program. If not, see <http:#www.gnu.org/licenses/>.
27
- #
28
- # @ignore
29
- # ===================================================================================================
30
- require 'test_helper'
31
- require 'uri'
32
-
33
- class MediaServiceTest < Test::Unit::TestCase
34
-
35
- # this test uploads a video file to kaltura and creates a media entry using the uploaded file.
36
- should "upload a video file and create a kaltura entry" do
37
-
38
- media_entry = Kaltura::KalturaMediaEntry.new
39
- media_entry.name = "kaltura_test1"
40
- media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
41
- video_file = File.open("test/media/test.wmv")
42
-
43
- video_token = @client.media_service.upload(video_file)
44
- created_entry1 = @client.media_service.add_from_uploaded_file(media_entry, video_token)
45
-
46
- assert_not_nil created_entry1.id
47
- assert_nil @client.media_service.delete(created_entry1.id)
48
- end
49
-
50
- # this test uploads a image file to kaltura and creates a media entry using the uploaded file.
51
- should "upload a image file and create a kaltura entry" do
52
-
53
- media_entry = Kaltura::KalturaMediaEntry.new
54
- media_entry.name = "kaltura_test2"
55
- media_entry.media_type = Kaltura::KalturaMediaType::IMAGE
56
- video_file = File.open("test/media/test.png")
57
-
58
- video_token = @client.media_service.upload(video_file)
59
- created_entry2 = @client.media_service.add_from_uploaded_file(media_entry, video_token)
60
-
61
- assert_not_nil created_entry2.id
62
- assert_nil @client.media_service.delete(created_entry2.id)
63
- end
64
-
65
- # this test uploads a video file to kaltura reading from a url and creates a media entry using the uploaded file.
66
- should "upload a flv file from url and create a kaltura entry" do
67
-
68
- media_entry = Kaltura::KalturaMediaEntry.new
69
- media_entry.name = "kaltura_test3"
70
- media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
71
-
72
- created_entry3 = @client.media_service.add_from_url(media_entry, URI.escape("http://www.kaltura.org/kalorg/kaltura-api-clients-generators/trunk/sources/csharp/KalturaClientTester/DemoVideo.flv", Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")))
73
-
74
- assert_not_nil created_entry3.id
75
- assert_equal created_entry3.status, Kaltura::KalturaEntryStatus::IMPORT
76
- assert_nil @client.media_service.delete(created_entry3.id)
77
- end
78
-
79
- # this test creates an entry and ranks it
80
- should "set the rank attributes" do
81
-
82
- media_entry = Kaltura::KalturaMediaEntry.new
83
- media_entry.name = "kaltura_test"
84
- media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
85
- video_file = File.open("test/media/test.wmv")
86
-
87
- video_token = @client.media_service.upload(video_file)
88
- created_entry = @client.media_service.add_from_uploaded_file(media_entry, video_token)
89
-
90
- assert_not_nil created_entry.id
91
- assert_equal created_entry.rank, 0
92
- assert_equal created_entry.total_rank, 0
93
- assert_equal created_entry.votes, 0
94
-
95
- @client.media_service.anonymous_rank(created_entry.id, 5)
96
- created_entry = @client.media_service.get(created_entry.id)
97
-
98
- assert_equal created_entry.rank, 5
99
- assert_equal created_entry.total_rank, 5
100
- assert_equal created_entry.votes, 1
101
-
102
- @client.media_service.anonymous_rank(created_entry.id, 2)
103
- created_entry = @client.media_service.get(created_entry.id)
104
-
105
- assert_equal created_entry.rank, 3.5
106
- assert_equal created_entry.total_rank, 7
107
- assert_equal created_entry.votes, 2
108
-
109
- assert_nil @client.media_service.delete(created_entry.id)
110
- end
111
-
112
- # this test creates an entry and updates the thumbnail of it using a image url
113
- should "update the thumbnail from url" do
114
-
115
- media_entry = Kaltura::KalturaMediaEntry.new
116
- media_entry.name = "kaltura_test"
117
- media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
118
- video_file = File.open("test/media/test.wmv")
119
-
120
- video_token = @client.media_service.upload(video_file)
121
- created_entry = @client.media_service.add_from_uploaded_file(media_entry, video_token)
122
-
123
- assert_not_nil created_entry.id
124
-
125
- updated_entry = @client.media_service.update_thumbnail_from_url(created_entry.id, "http://corp.kaltura.com/sites/kaltura-website/files/logo_0.png")
126
-
127
- assert_not_nil updated_entry
128
- assert_not_nil updated_entry.thumbnail_url
129
- assert_not_equal created_entry.thumbnail_url, updated_entry.thumbnail_url
130
-
131
- assert_nil @client.media_service.delete(created_entry.id)
132
- end
133
-
134
- # this test tries to create a media entry with invalid token.
135
- should "not create a media entry for a invalid token" do
136
-
137
- assert_raise Kaltura::KalturaAPIError do
138
- @created_entry = @client.media_service.get("invalid entry id")
139
- end
140
- end
141
-
142
- # this test validates the response of a multi request when thre are no requests in the queue
143
- should "get empty array for multi request when there are no requests in the queue" do
144
-
145
- @client.start_multirequest
146
-
147
- retVal = @client.do_multirequest
148
-
149
- assert_equal retVal, []
150
- end
151
-
152
- # this test starts multirequest couple of times
153
- should "not raise any errors for double start multi request" do
154
-
155
- assert_nothing_raised Kaltura::KalturaAPIError do
156
- @client.start_multirequest
157
- @client.start_multirequest
158
- end
159
- end
160
-
161
- # this test calls do_multirequest without stating it.
162
- should "get an empty array for the multirequest when it calls without starting it" do
163
-
164
- media_entry = Kaltura::KalturaMediaEntry.new
165
- media_entry.name = "kaltura_test3"
166
- media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
167
- video_file = File.open("test/media/test.wmv")
168
-
169
- video_token = @client.media_service.upload(video_file)
170
-
171
- ceated_media_entry = @client.media_service.add_from_uploaded_file(media_entry, video_token)
172
-
173
- media_entry_filter = Kaltura::KalturaMediaEntryFilter.new
174
- media_entry_filter.name_multi_like_or = "kaltura_test3"
175
- filter_pager = Kaltura::KalturaFilterPager.new
176
- filter_pager.page_size = 1
177
- @client.media_service.list(media_entry_filter, filter_pager)
178
-
179
- retVal = @client.do_multirequest
180
-
181
- assert_equal retVal, []
182
-
183
- assert_nil @client.media_service.delete(ceated_media_entry.id)
184
- end
185
-
186
- # this test uses multi request to retrieve the media entry list and create a new entry.
187
- should "get the media list and create a media entry" do
188
-
189
- media_entry = Kaltura::KalturaMediaEntry.new
190
- media_entry.name = "kaltura_test3"
191
- media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
192
- video_file = File.open("test/media/test.wmv")
193
-
194
- media_entry_filter = Kaltura::KalturaMediaEntryFilter.new
195
- media_entry_filter.name_multi_like_or = "kaltura_test3"
196
- filter_pager = Kaltura::KalturaFilterPager.new
197
- filter_pager.page_size = 1
198
-
199
- @client.start_multirequest
200
-
201
- @client.media_service.upload(video_file)
202
- @client.media_service.add_from_uploaded_file(media_entry, "{1:result}")
203
- @client.media_service.list(media_entry_filter, filter_pager)
204
-
205
- retVal = @client.do_multirequest
206
-
207
- assert_instance_of Kaltura::KalturaMediaEntry, retVal[1]
208
- assert_instance_of Kaltura::KalturaMediaListResponse, retVal[2]
209
- assert_not_nil retVal[1].id
210
- assert_not_nil retVal[2].total_count
211
- assert_nil @client.media_service.delete(retVal[1].id)
212
- end
213
-
214
- # this test retrieves error objects when a action in a multi request fails.
215
- should "return error objects for failed actions" do
216
-
217
- media_entry = Kaltura::KalturaMediaEntry.new
218
- media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
219
-
220
- media_entry_filter = Kaltura::KalturaMediaEntryFilter.new
221
- filter_pager = Kaltura::KalturaFilterPager.new
222
- filter_pager.page_size = 1
223
-
224
- @client.start_multirequest
225
-
226
- @client.media_service.get("invalid entry id")
227
- @client.media_service.list(media_entry_filter, filter_pager)
228
-
229
- retVal = @client.do_multirequest
230
-
231
- assert_instance_of Kaltura::KalturaAPIError, retVal[0]
232
- assert_instance_of Kaltura::KalturaMediaListResponse, retVal[1]
233
- assert_not_nil retVal[1].total_count
234
- end
235
-
236
- # this test uses utf8 content in the media entry meta data.
237
- should "support UTF content in entry metadata" do
238
-
239
- media_entry = Kaltura::KalturaMediaEntry.new
240
- media_entry.name = "שלום"
241
- media_entry.description = @description
242
-
243
- media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
244
- video_file = File.open("test/media/test.wmv")
245
-
246
- video_token = @client.media_service.upload(video_file)
247
- created_entry = @client.media_service.add_from_uploaded_file(media_entry, video_token)
248
-
249
- assert_not_nil created_entry.id
250
-
251
- media_entry = @client.base_entry_service.get(created_entry.id)
252
-
253
- assert_equal media_entry.name, "שלום"
254
- assert_equal media_entry.description, @description
255
- assert_nil @client.media_service.delete(media_entry.id)
256
- end
257
-
258
- # this test resets content in the media entry meta data.
259
- should "support setting nil for content in entry metadata" do
260
-
261
- media_entry = Kaltura::KalturaMediaEntry.new
262
- media_entry.name = "kaltura_test1"
263
- media_entry.description = "kaltura_test1 description"
264
- media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
265
- video_file = File.open("test/media/test.wmv")
266
-
267
- video_token = @client.media_service.upload(video_file)
268
- created_entry = @client.media_service.add_from_uploaded_file(media_entry, video_token)
269
-
270
- assert_not_nil created_entry.id
271
-
272
- media_entry = @client.base_entry_service.get(created_entry.id)
273
-
274
- assert_equal media_entry.name, "kaltura_test1"
275
- assert_equal media_entry.description, "kaltura_test1 description"
276
-
277
- # update the desc with value
278
- media_entry = Kaltura::KalturaBaseEntry.new
279
- media_entry.name = "kaltura_test1 updated"
280
- media_entry.description = nil
281
- media_entry_updated = @client.base_entry_service.update(created_entry.id, media_entry)
282
-
283
- assert_equal media_entry_updated.description, nil
284
-
285
- assert_nil @client.media_service.delete(media_entry_updated.id)
286
- end
287
-
288
- def setup
289
- super
290
- @description=
291
- <<-DESC
292
- שלום עולם
293
- DESC
294
- end
295
-
296
- end
1
+ # coding: utf-8
2
+
3
+ # ===================================================================================================
4
+ # _ __ _ _
5
+ # | |/ /__ _| | |_ _ _ _ _ __ _
6
+ # | ' </ _` | | _| || | '_/ _` |
7
+ # |_|\_\__,_|_|\__|\_,_|_| \__,_|
8
+ #
9
+ # This file is part of the Kaltura Collaborative Media Suite which allows users
10
+ # to do with audio, video, and animation what Wiki platfroms allow them to do with
11
+ # text.
12
+ #
13
+ # Copyright (C) 2006-2011 Kaltura Inc.
14
+ #
15
+ # This program is free software: you can redistribute it and/or modify
16
+ # it under the terms of the GNU Affero General Public License as
17
+ # published by the Free Software Foundation, either version 3 of the
18
+ # License, or (at your option) any later version.
19
+ #
20
+ # This program is distributed in the hope that it will be useful,
21
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
22
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
+ # GNU Affero General Public License for more details.
24
+ #
25
+ # You should have received a copy of the GNU Affero General Public License
26
+ # along with this program. If not, see <http:#www.gnu.org/licenses/>.
27
+ #
28
+ # @ignore
29
+ # ===================================================================================================
30
+ require 'test_helper'
31
+ require 'uri'
32
+
33
+ class MediaServiceTest < Test::Unit::TestCase
34
+
35
+ # this test uploads a video file to kaltura and creates a media entry using the uploaded file.
36
+ should "upload a video file and create a kaltura entry" do
37
+
38
+ media_entry = Kaltura::KalturaMediaEntry.new
39
+ media_entry.name = "kaltura_test1"
40
+ media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
41
+ video_file = File.open("test/media/test.wmv")
42
+
43
+ video_token = @client.media_service.upload(video_file)
44
+ created_entry1 = @client.media_service.add_from_uploaded_file(media_entry, video_token)
45
+
46
+ assert_not_nil created_entry1.id
47
+ assert_nil @client.media_service.delete(created_entry1.id)
48
+ end
49
+
50
+ # this test uploads a image file to kaltura and creates a media entry using the uploaded file.
51
+ should "upload a image file and create a kaltura entry" do
52
+
53
+ media_entry = Kaltura::KalturaMediaEntry.new
54
+ media_entry.name = "kaltura_test2"
55
+ media_entry.media_type = Kaltura::KalturaMediaType::IMAGE
56
+ video_file = File.open("test/media/test.png")
57
+
58
+ video_token = @client.media_service.upload(video_file)
59
+ created_entry2 = @client.media_service.add_from_uploaded_file(media_entry, video_token)
60
+
61
+ assert_not_nil created_entry2.id
62
+ assert_nil @client.media_service.delete(created_entry2.id)
63
+ end
64
+
65
+ # this test uploads a video file to kaltura reading from a url and creates a media entry using the uploaded file.
66
+ should "upload a flv file from url and create a kaltura entry" do
67
+
68
+ media_entry = Kaltura::KalturaMediaEntry.new
69
+ media_entry.name = "kaltura_test3"
70
+ media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
71
+
72
+ created_entry3 = @client.media_service.add_from_url(media_entry, URI.escape("http://www.kaltura.org/kalorg/kaltura-api-clients-generators/trunk/sources/csharp/KalturaClientTester/DemoVideo.flv", Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")))
73
+
74
+ assert_not_nil created_entry3.id
75
+ assert_equal created_entry3.status, Kaltura::KalturaEntryStatus::IMPORT
76
+ assert_nil @client.media_service.delete(created_entry3.id)
77
+ end
78
+
79
+ # this test creates an entry and ranks it
80
+ should "set the rank attributes" do
81
+
82
+ media_entry = Kaltura::KalturaMediaEntry.new
83
+ media_entry.name = "kaltura_test"
84
+ media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
85
+ video_file = File.open("test/media/test.wmv")
86
+
87
+ video_token = @client.media_service.upload(video_file)
88
+ created_entry = @client.media_service.add_from_uploaded_file(media_entry, video_token)
89
+
90
+ assert_not_nil created_entry.id
91
+ assert_equal created_entry.rank, 0
92
+ assert_equal created_entry.total_rank, 0
93
+ assert_equal created_entry.votes, 0
94
+
95
+ @client.media_service.anonymous_rank(created_entry.id, 5)
96
+ created_entry = @client.media_service.get(created_entry.id)
97
+
98
+ assert_equal created_entry.rank, 5
99
+ assert_equal created_entry.total_rank, 5
100
+ assert_equal created_entry.votes, 1
101
+
102
+ @client.media_service.anonymous_rank(created_entry.id, 2)
103
+ created_entry = @client.media_service.get(created_entry.id)
104
+
105
+ assert_equal created_entry.rank, 3.5
106
+ assert_equal created_entry.total_rank, 7
107
+ assert_equal created_entry.votes, 2
108
+
109
+ assert_nil @client.media_service.delete(created_entry.id)
110
+ end
111
+
112
+ # this test creates an entry and updates the thumbnail of it using a image url
113
+ should "update the thumbnail from url" do
114
+
115
+ media_entry = Kaltura::KalturaMediaEntry.new
116
+ media_entry.name = "kaltura_test"
117
+ media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
118
+ video_file = File.open("test/media/test.wmv")
119
+
120
+ video_token = @client.media_service.upload(video_file)
121
+ created_entry = @client.media_service.add_from_uploaded_file(media_entry, video_token)
122
+
123
+ assert_not_nil created_entry.id
124
+
125
+ updated_entry = @client.media_service.update_thumbnail_from_url(created_entry.id, "http://corp.kaltura.com/sites/kaltura-website/files/logo_0.png")
126
+
127
+ assert_not_nil updated_entry
128
+ assert_not_nil updated_entry.thumbnail_url
129
+ assert_not_equal created_entry.thumbnail_url, updated_entry.thumbnail_url
130
+
131
+ assert_nil @client.media_service.delete(created_entry.id)
132
+ end
133
+
134
+ # this test tries to create a media entry with invalid token.
135
+ should "not create a media entry for a invalid token" do
136
+
137
+ assert_raise Kaltura::KalturaAPIError do
138
+ @created_entry = @client.media_service.get("invalid entry id")
139
+ end
140
+ end
141
+
142
+ # this test validates the response of a multi request when thre are no requests in the queue
143
+ should "get empty array for multi request when there are no requests in the queue" do
144
+
145
+ @client.start_multirequest
146
+
147
+ retVal = @client.do_multirequest
148
+
149
+ assert_equal retVal, []
150
+ end
151
+
152
+ # this test starts multirequest couple of times
153
+ should "not raise any errors for double start multi request" do
154
+
155
+ assert_nothing_raised Kaltura::KalturaAPIError do
156
+ @client.start_multirequest
157
+ @client.start_multirequest
158
+ end
159
+ end
160
+
161
+ # this test calls do_multirequest without stating it.
162
+ should "get an empty array for the multirequest when it calls without starting it" do
163
+
164
+ media_entry = Kaltura::KalturaMediaEntry.new
165
+ media_entry.name = "kaltura_test3"
166
+ media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
167
+ video_file = File.open("test/media/test.wmv")
168
+
169
+ video_token = @client.media_service.upload(video_file)
170
+
171
+ ceated_media_entry = @client.media_service.add_from_uploaded_file(media_entry, video_token)
172
+
173
+ media_entry_filter = Kaltura::KalturaMediaEntryFilter.new
174
+ media_entry_filter.name_multi_like_or = "kaltura_test3"
175
+ filter_pager = Kaltura::KalturaFilterPager.new
176
+ filter_pager.page_size = 1
177
+ @client.media_service.list(media_entry_filter, filter_pager)
178
+
179
+ retVal = @client.do_multirequest
180
+
181
+ assert_equal retVal, []
182
+
183
+ assert_nil @client.media_service.delete(ceated_media_entry.id)
184
+ end
185
+
186
+ # this test uses multi request to retrieve the media entry list and create a new entry.
187
+ should "get the media list and create a media entry" do
188
+
189
+ media_entry = Kaltura::KalturaMediaEntry.new
190
+ media_entry.name = "kaltura_test3"
191
+ media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
192
+ video_file = File.open("test/media/test.wmv")
193
+
194
+ media_entry_filter = Kaltura::KalturaMediaEntryFilter.new
195
+ media_entry_filter.name_multi_like_or = "kaltura_test3"
196
+ filter_pager = Kaltura::KalturaFilterPager.new
197
+ filter_pager.page_size = 1
198
+
199
+ @client.start_multirequest
200
+
201
+ @client.media_service.upload(video_file)
202
+ @client.media_service.add_from_uploaded_file(media_entry, "{1:result}")
203
+ @client.media_service.list(media_entry_filter, filter_pager)
204
+
205
+ retVal = @client.do_multirequest
206
+
207
+ assert_instance_of Kaltura::KalturaMediaEntry, retVal[1]
208
+ assert_instance_of Kaltura::KalturaMediaListResponse, retVal[2]
209
+ assert_not_nil retVal[1].id
210
+ assert_not_nil retVal[2].total_count
211
+ assert_nil @client.media_service.delete(retVal[1].id)
212
+ end
213
+
214
+ # this test retrieves error objects when a action in a multi request fails.
215
+ should "return error objects for failed actions" do
216
+
217
+ media_entry = Kaltura::KalturaMediaEntry.new
218
+ media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
219
+
220
+ media_entry_filter = Kaltura::KalturaMediaEntryFilter.new
221
+ filter_pager = Kaltura::KalturaFilterPager.new
222
+ filter_pager.page_size = 1
223
+
224
+ @client.start_multirequest
225
+
226
+ @client.media_service.get("invalid entry id")
227
+ @client.media_service.list(media_entry_filter, filter_pager)
228
+
229
+ retVal = @client.do_multirequest
230
+
231
+ assert_instance_of Kaltura::KalturaAPIError, retVal[0]
232
+ assert_instance_of Kaltura::KalturaMediaListResponse, retVal[1]
233
+ assert_not_nil retVal[1].total_count
234
+ end
235
+
236
+ # this test uses utf8 content in the media entry meta data.
237
+ should "support UTF content in entry metadata" do
238
+
239
+ media_entry = Kaltura::KalturaMediaEntry.new
240
+ media_entry.name = "שלום"
241
+ media_entry.description = @description
242
+
243
+ media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
244
+ video_file = File.open("test/media/test.wmv")
245
+
246
+ video_token = @client.media_service.upload(video_file)
247
+ created_entry = @client.media_service.add_from_uploaded_file(media_entry, video_token)
248
+
249
+ assert_not_nil created_entry.id
250
+
251
+ media_entry = @client.base_entry_service.get(created_entry.id)
252
+
253
+ assert_equal media_entry.name, "שלום"
254
+ assert_equal media_entry.description, @description
255
+ assert_nil @client.media_service.delete(media_entry.id)
256
+ end
257
+
258
+ # this test resets content in the media entry meta data.
259
+ should "support setting nil for content in entry metadata" do
260
+
261
+ media_entry = Kaltura::KalturaMediaEntry.new
262
+ media_entry.name = "kaltura_test1"
263
+ media_entry.description = "kaltura_test1 description"
264
+ media_entry.media_type = Kaltura::KalturaMediaType::VIDEO
265
+ video_file = File.open("test/media/test.wmv")
266
+
267
+ video_token = @client.media_service.upload(video_file)
268
+ created_entry = @client.media_service.add_from_uploaded_file(media_entry, video_token)
269
+
270
+ assert_not_nil created_entry.id
271
+
272
+ media_entry = @client.base_entry_service.get(created_entry.id)
273
+
274
+ assert_equal media_entry.name, "kaltura_test1"
275
+ assert_equal media_entry.description, "kaltura_test1 description"
276
+
277
+ # update the desc with value
278
+ media_entry = Kaltura::KalturaBaseEntry.new
279
+ media_entry.name = "kaltura_test1 updated"
280
+ media_entry.description = nil
281
+ media_entry_updated = @client.base_entry_service.update(created_entry.id, media_entry)
282
+
283
+ assert_equal media_entry_updated.description, nil
284
+
285
+ assert_nil @client.media_service.delete(media_entry_updated.id)
286
+ end
287
+
288
+ def setup
289
+ super
290
+ @description=
291
+ <<-DESC
292
+ שלום עולם
293
+ DESC
294
+ end
295
+
296
+ end