@playkit-js/playkit-js-providers 2.39.1 → 2.39.2
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.
- package/CHANGELOG.md +4 -0
- package/dist/playkit-analytics-service.js +2 -0
- package/dist/playkit-analytics-service.js.map +1 -0
- package/dist/playkit-bookmark-service.js +2 -0
- package/dist/playkit-bookmark-service.js.map +1 -0
- package/dist/playkit-ott-provider.js +2 -0
- package/dist/playkit-ott-provider.js.map +1 -0
- package/dist/playkit-ovp-provider.js +2 -0
- package/dist/playkit-ovp-provider.js.map +1 -0
- package/dist/playkit-stats-service.js +2 -0
- package/dist/playkit-stats-service.js.map +1 -0
- package/package.json +1 -1
- package/.babelrc +0 -22
- package/.editorconfig +0 -10
- package/.eslintignore +0 -3
- package/.eslintrc.json +0 -26
- package/.flowconfig +0 -5
- package/.github/ISSUE_TEMPLATE.md +0 -28
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -12
- package/.github/workflows/run_canary_full_flow.yaml +0 -28
- package/.github/workflows/run_prod.yaml +0 -24
- package/.github/workflows/run_tests.yaml +0 -24
- package/.prettierignore +0 -7
- package/.prettierrc +0 -12
- package/docs/configuration.md +0 -225
- package/karma.conf.js +0 -42
- package/src/entities/bumper.js +0 -23
- package/src/entities/drm.js +0 -46
- package/src/entities/entry-list.js +0 -15
- package/src/entities/image-source.js +0 -37
- package/src/entities/media-entry.js +0 -96
- package/src/entities/media-format.js +0 -46
- package/src/entities/media-source.js +0 -70
- package/src/entities/media-sources.js +0 -79
- package/src/entities/playlist.js +0 -37
- package/src/index.html +0 -11
- package/src/k-provider/common/base-provider-parser.js +0 -0
- package/src/k-provider/common/base-provider.js +0 -110
- package/src/k-provider/common/base-service-result.js +0 -57
- package/src/k-provider/common/data-loader-manager.js +0 -115
- package/src/k-provider/common/multi-request-builder.js +0 -112
- package/src/k-provider/common/response-types/kaltura-access-control-message.js +0 -22
- package/src/k-provider/common/response-types/kaltura-drm-playback-plugin-data.js +0 -39
- package/src/k-provider/ott/config.js +0 -22
- package/src/k-provider/ott/index.js +0 -15
- package/src/k-provider/ott/loaders/asset-list-loader.js +0 -68
- package/src/k-provider/ott/loaders/asset-loader.js +0 -69
- package/src/k-provider/ott/loaders/data-loader-manager.js +0 -15
- package/src/k-provider/ott/loaders/session-loader.js +0 -62
- package/src/k-provider/ott/provider-parser.js +0 -282
- package/src/k-provider/ott/provider.js +0 -242
- package/src/k-provider/ott/response-types/kaltura-asset.js +0 -79
- package/src/k-provider/ott/response-types/kaltura-bumper-playback-plugin-data.js +0 -28
- package/src/k-provider/ott/response-types/kaltura-playback-context.js +0 -74
- package/src/k-provider/ott/response-types/kaltura-playback-source.js +0 -63
- package/src/k-provider/ott/response-types/kaltura-rule-action.js +0 -26
- package/src/k-provider/ott/services/asset-service.js +0 -50
- package/src/k-provider/ott/services/bookmark/bookmark-service.js +0 -49
- package/src/k-provider/ott/services/bookmark/index.js +0 -12
- package/src/k-provider/ott/services/ott-service.js +0 -34
- package/src/k-provider/ott/services/user-service.js +0 -32
- package/src/k-provider/ovp/config.js +0 -28
- package/src/k-provider/ovp/external-captions-builder.js +0 -38
- package/src/k-provider/ovp/index.js +0 -13
- package/src/k-provider/ovp/loaders/data-loader-manager.js +0 -17
- package/src/k-provider/ovp/loaders/entry-list-loader.js +0 -69
- package/src/k-provider/ovp/loaders/media-entry-loader.js +0 -84
- package/src/k-provider/ovp/loaders/playlist-loader.js +0 -66
- package/src/k-provider/ovp/loaders/session-loader.js +0 -62
- package/src/k-provider/ovp/loaders/ui-config-loader.js +0 -71
- package/src/k-provider/ovp/play-source-url-builder.js +0 -60
- package/src/k-provider/ovp/provider-parser.js +0 -451
- package/src/k-provider/ovp/provider.js +0 -344
- package/src/k-provider/ovp/regex-action-handler.js +0 -147
- package/src/k-provider/ovp/request-params/base-entry-response-profile.js +0 -29
- package/src/k-provider/ovp/response-types/index.js +0 -18
- package/src/k-provider/ovp/response-types/kaltura-access-control-modify-request-host-regex-action.js +0 -36
- package/src/k-provider/ovp/response-types/kaltura-base-entry-list-response.js +0 -31
- package/src/k-provider/ovp/response-types/kaltura-bumper.js +0 -26
- package/src/k-provider/ovp/response-types/kaltura-flavor-asset.js +0 -109
- package/src/k-provider/ovp/response-types/kaltura-media-entries.js +0 -23
- package/src/k-provider/ovp/response-types/kaltura-media-entry.js +0 -141
- package/src/k-provider/ovp/response-types/kaltura-metadata-list-response.js +0 -23
- package/src/k-provider/ovp/response-types/kaltura-metadata.js +0 -51
- package/src/k-provider/ovp/response-types/kaltura-playback-context.js +0 -96
- package/src/k-provider/ovp/response-types/kaltura-playback-source.js +0 -90
- package/src/k-provider/ovp/response-types/kaltura-playlist.js +0 -35
- package/src/k-provider/ovp/response-types/kaltura-rule-action.js +0 -28
- package/src/k-provider/ovp/response-types/kaltura-ui-conf-response.js +0 -90
- package/src/k-provider/ovp/services/analytics/analytics-service.js +0 -57
- package/src/k-provider/ovp/services/analytics/index.js +0 -12
- package/src/k-provider/ovp/services/base-entry-service.js +0 -76
- package/src/k-provider/ovp/services/meta-data-service.js +0 -30
- package/src/k-provider/ovp/services/ovp-service.js +0 -33
- package/src/k-provider/ovp/services/playlist-service.js +0 -63
- package/src/k-provider/ovp/services/session-service.js +0 -28
- package/src/k-provider/ovp/services/stats/index.js +0 -12
- package/src/k-provider/ovp/services/stats/stats-service.js +0 -33
- package/src/k-provider/ovp/services/ui-conf-service.js +0 -33
- package/src/util/clone.js +0 -23
- package/src/util/error/category.js +0 -12
- package/src/util/error/code.js +0 -79
- package/src/util/error/error.js +0 -48
- package/src/util/error/severity.js +0 -23
- package/src/util/logger.js +0 -108
- package/src/util/param.js +0 -45
- package/src/util/request-builder.js +0 -187
- package/src/util/xml-parser.js +0 -40
- package/test/.eslintrc.json +0 -9
- package/test/setup/karma.js +0 -5
- package/test/setup/load-specs.js +0 -13
- package/test/setup/prepare-test-environment.js +0 -17
- package/test/src/k-provider/ott/be-data.js +0 -3306
- package/test/src/k-provider/ott/media-config-data.js +0 -793
- package/test/src/k-provider/ott/provider-parser.spec.js +0 -30
- package/test/src/k-provider/ott/provider.spec.js +0 -384
- package/test/src/k-provider/ott/services/bookmark-service.spec.js +0 -38
- package/test/src/k-provider/ovp/be-data.js +0 -3932
- package/test/src/k-provider/ovp/external-captions-builder.spec.js +0 -59
- package/test/src/k-provider/ovp/media-config-data.js +0 -1509
- package/test/src/k-provider/ovp/playback-sources-data.js +0 -229
- package/test/src/k-provider/ovp/provider-parser-data.js +0 -142
- package/test/src/k-provider/ovp/provider-parser.spec.js +0 -96
- package/test/src/k-provider/ovp/provider.spec.js +0 -1075
- package/test/src/k-provider/ovp/regex-action-handler-data.js +0 -794
- package/test/src/k-provider/ovp/regex-action-handler.spec.js +0 -93
- package/test/src/k-provider/ovp/services/analytics-service.spec.js +0 -62
- package/test/src/k-provider/ovp/services/stats-service.spec.js +0 -37
- package/test/src/util/param.spec.js +0 -23
- package/webpack.config.js +0 -85
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import OTTProviderParser from '../../../../src/k-provider/ott/provider-parser';
|
|
2
|
-
import {MediaLiveAssetData} from './be-data';
|
|
3
|
-
|
|
4
|
-
describe('provider parser', function () {
|
|
5
|
-
describe('_getMediaType', () => {
|
|
6
|
-
it('should check KalturaLiveAsset with enableTrickPlay true and externalIds > 0 returns live with dvr', done => {
|
|
7
|
-
const typeData = OTTProviderParser._getMediaType(MediaLiveAssetData, 'media', 'PLAYBACK');
|
|
8
|
-
typeData.type.should.equal('Live');
|
|
9
|
-
typeData.dvrStatus.should.equal(1);
|
|
10
|
-
done();
|
|
11
|
-
});
|
|
12
|
-
it('should check KalturaLiveAsset with enableTrickPlay false returns live with dvr false', done => {
|
|
13
|
-
const MediaLiveAssetDataCopy = JSON.parse(JSON.stringify(MediaLiveAssetData));
|
|
14
|
-
MediaLiveAssetDataCopy.externalIds = 0;
|
|
15
|
-
MediaLiveAssetDataCopy.enableTrickPlay = false;
|
|
16
|
-
const typeData = OTTProviderParser._getMediaType(MediaLiveAssetDataCopy, 'media', 'PLAYBACK');
|
|
17
|
-
typeData.type.should.equal('Live');
|
|
18
|
-
typeData.dvrStatus.should.equal(0);
|
|
19
|
-
done();
|
|
20
|
-
});
|
|
21
|
-
it('should check KalturaLiveAsset with enableTrickPlay true returns live with dvr true', done => {
|
|
22
|
-
const MediaLiveAssetDataCopy = JSON.parse(JSON.stringify(MediaLiveAssetData));
|
|
23
|
-
MediaLiveAssetDataCopy.externalIds = 0;
|
|
24
|
-
const typeData = OTTProviderParser._getMediaType(MediaLiveAssetDataCopy, 'media', 'PLAYBACK');
|
|
25
|
-
typeData.type.should.equal('Live');
|
|
26
|
-
typeData.dvrStatus.should.equal(1);
|
|
27
|
-
done();
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
});
|
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
import OTTProvider from '../../../../src/k-provider/ott/provider';
|
|
2
|
-
import * as BE_DATA from './be-data';
|
|
3
|
-
import * as MEDIA_CONFIG_DATA from './media-config-data';
|
|
4
|
-
import {MultiRequestResult} from '../../../../src/k-provider/common/multi-request-builder';
|
|
5
|
-
import MultiRequestBuilder from '../../../../src/k-provider/common/multi-request-builder';
|
|
6
|
-
import KalturaAsset from '../../../../src/k-provider/ott/response-types/kaltura-asset';
|
|
7
|
-
import KalturaPlaybackContext from '../../../../src/k-provider/ott/response-types/kaltura-playback-context';
|
|
8
|
-
import OTTAssetLoader from '../../../../src/k-provider/ott/loaders/asset-loader';
|
|
9
|
-
import Error from '../../../../src/util/error/error';
|
|
10
|
-
import OTTConfiguration from '../../../../src/k-provider/ott/config';
|
|
11
|
-
|
|
12
|
-
const partnerId = 198;
|
|
13
|
-
const playerVersion = '1.2.3';
|
|
14
|
-
|
|
15
|
-
describe('default configuration', () => {
|
|
16
|
-
const defaultConfig = OTTConfiguration.get();
|
|
17
|
-
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
OTTConfiguration.set(defaultConfig);
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
afterEach(() => {
|
|
23
|
-
OTTConfiguration.set(defaultConfig);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('should use config values if they are set', () => {
|
|
27
|
-
const provider = new OTTProvider({partnerId: partnerId, env: {serviceParams: {apiVersion: '5.2.7'}}}, playerVersion);
|
|
28
|
-
provider.env.serviceParams.apiVersion.should.equal('5.2.7');
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it('should use default values if config values are not set', () => {
|
|
32
|
-
const provider = new OTTProvider({partnerId: partnerId}, playerVersion);
|
|
33
|
-
provider.env.serviceParams.apiVersion.should.equal(defaultConfig.serviceParams.apiVersion);
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
describe('OTTProvider.partnerId:198', function () {
|
|
38
|
-
let provider, sandbox;
|
|
39
|
-
beforeEach(() => {
|
|
40
|
-
sandbox = sinon.createSandbox();
|
|
41
|
-
provider = new OTTProvider({partnerId: partnerId}, playerVersion);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
afterEach(() => {
|
|
45
|
-
sandbox.restore();
|
|
46
|
-
if (MultiRequestBuilder.prototype.execute.restore) {
|
|
47
|
-
MultiRequestBuilder.prototype.execute.restore();
|
|
48
|
-
}
|
|
49
|
-
if (OTTAssetLoader.prototype.buildRequests.restore) {
|
|
50
|
-
OTTAssetLoader.prototype.buildRequests.restore();
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
it('should return config without plugins and with drm data', done => {
|
|
55
|
-
sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
|
|
56
|
-
return new Promise(resolve => {
|
|
57
|
-
resolve({response: new MultiRequestResult(BE_DATA.AnonymousEntryWithoutUIConfWithDrmData.response)});
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
provider.getMediaConfig({entryId: 480097}).then(
|
|
61
|
-
mediaConfig => {
|
|
62
|
-
try {
|
|
63
|
-
mediaConfig.should.deep.equal(MEDIA_CONFIG_DATA.NoPluginsWithDrm);
|
|
64
|
-
done();
|
|
65
|
-
} catch (err) {
|
|
66
|
-
done(err);
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
err => {
|
|
70
|
-
done(err);
|
|
71
|
-
}
|
|
72
|
-
);
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
it('should return config filtered by device types', done => {
|
|
76
|
-
sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
|
|
77
|
-
return new Promise(resolve => {
|
|
78
|
-
resolve({response: new MultiRequestResult(BE_DATA.AnonymousEntryWithoutUIConfWithDrmData.response)});
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
provider
|
|
82
|
-
.getMediaConfig({
|
|
83
|
-
entryId: 480097,
|
|
84
|
-
formats: ['Mobile_Devices_Main_HD_FP', 'Mobile_Devices_Main_SD_FP'],
|
|
85
|
-
mediaType: KalturaAsset.Type.RECORDING
|
|
86
|
-
})
|
|
87
|
-
.then(
|
|
88
|
-
mediaConfig => {
|
|
89
|
-
try {
|
|
90
|
-
mediaConfig.should.deep.equal(MEDIA_CONFIG_DATA.FilteredSourcesByDeviceType);
|
|
91
|
-
done();
|
|
92
|
-
} catch (err) {
|
|
93
|
-
done(err);
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
err => {
|
|
97
|
-
done(err);
|
|
98
|
-
}
|
|
99
|
-
);
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
it('should return entry of live type', done => {
|
|
103
|
-
sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
|
|
104
|
-
return new Promise(resolve => {
|
|
105
|
-
resolve({response: new MultiRequestResult(BE_DATA.LiveEntryNoDrmData.response)});
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
provider.getMediaConfig({entryId: 276507, contextType: KalturaPlaybackContext.Type.START_OVER, mediaType: KalturaAsset.Type.EPG}).then(
|
|
109
|
-
mediaConfig => {
|
|
110
|
-
try {
|
|
111
|
-
mediaConfig.should.deep.equal(MEDIA_CONFIG_DATA.LiveEntryNoDrm);
|
|
112
|
-
done();
|
|
113
|
-
} catch (err) {
|
|
114
|
-
done(err);
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
err => {
|
|
118
|
-
done(err);
|
|
119
|
-
}
|
|
120
|
-
);
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
it('should return block error for server block response', done => {
|
|
124
|
-
sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
|
|
125
|
-
return new Promise(resolve => {
|
|
126
|
-
resolve({response: new MultiRequestResult(BE_DATA.BlockActionEntry.response)});
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
provider.getMediaConfig({entryId: 1234}).then(
|
|
130
|
-
mediaConfig => {
|
|
131
|
-
try {
|
|
132
|
-
throw new Error('no error returned where block action error was expected', mediaConfig);
|
|
133
|
-
} catch (e) {
|
|
134
|
-
done(e);
|
|
135
|
-
}
|
|
136
|
-
},
|
|
137
|
-
err => {
|
|
138
|
-
const expected = {
|
|
139
|
-
severity: 2,
|
|
140
|
-
category: 2,
|
|
141
|
-
code: 2001,
|
|
142
|
-
data: {
|
|
143
|
-
action: {
|
|
144
|
-
type: 'BLOCK'
|
|
145
|
-
},
|
|
146
|
-
messages: [
|
|
147
|
-
{
|
|
148
|
-
message: 'Concurrency limitation',
|
|
149
|
-
code: 'ConcurrencyLimitation'
|
|
150
|
-
}
|
|
151
|
-
]
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
try {
|
|
155
|
-
err.should.deep.equal(expected);
|
|
156
|
-
done();
|
|
157
|
-
} catch (e) {
|
|
158
|
-
done(e);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
);
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
it('should return error for invalid KS format', done => {
|
|
165
|
-
sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
|
|
166
|
-
return new Promise((resolve, reject) => {
|
|
167
|
-
reject(
|
|
168
|
-
new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MULTIREQUEST_API_ERROR, {
|
|
169
|
-
url: 'serviceurl',
|
|
170
|
-
headers: [],
|
|
171
|
-
results: new MultiRequestResult(BE_DATA.InvalidKSFormat.response).results
|
|
172
|
-
})
|
|
173
|
-
);
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
provider.getMediaConfig({entryId: 1234}).then(
|
|
177
|
-
mediaConfig => {
|
|
178
|
-
try {
|
|
179
|
-
throw new Error('no error returned where block action error was expected', mediaConfig);
|
|
180
|
-
} catch (e) {
|
|
181
|
-
done(e);
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
err => {
|
|
185
|
-
const expected = {
|
|
186
|
-
severity: 2,
|
|
187
|
-
category: 1,
|
|
188
|
-
code: 1006,
|
|
189
|
-
data: {
|
|
190
|
-
headers: [],
|
|
191
|
-
results: [
|
|
192
|
-
{
|
|
193
|
-
error: {
|
|
194
|
-
code: '500015',
|
|
195
|
-
message: 'Invalid KS format'
|
|
196
|
-
},
|
|
197
|
-
hasError: true
|
|
198
|
-
}
|
|
199
|
-
],
|
|
200
|
-
url: 'serviceurl'
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
try {
|
|
204
|
-
err.should.deep.equal(expected);
|
|
205
|
-
done();
|
|
206
|
-
} catch (e) {
|
|
207
|
-
done(e);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
);
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
it('should pass streamerType and urlType on the playback context object', done => {
|
|
214
|
-
sinon.stub(OTTAssetLoader.prototype, 'buildRequests').callsFake(function (params: Object) {
|
|
215
|
-
try {
|
|
216
|
-
params.playbackContext.streamerType.should.equal('mpegdash');
|
|
217
|
-
params.playbackContext.urlType.should.equal('DIRECT');
|
|
218
|
-
done();
|
|
219
|
-
} catch (e) {
|
|
220
|
-
done(e);
|
|
221
|
-
}
|
|
222
|
-
return [];
|
|
223
|
-
});
|
|
224
|
-
provider.getMediaConfig({entryId: 1234, streamerType: 'mpegdash', urlType: 'DIRECT'});
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
it('should pass adapterData on the playback context object', done => {
|
|
228
|
-
const adapterDataConfig = {
|
|
229
|
-
supported_files: {
|
|
230
|
-
objectType: 'KalturaStringValue',
|
|
231
|
-
value: 'HLS_FPS'
|
|
232
|
-
},
|
|
233
|
-
supported_codec: {
|
|
234
|
-
objectType: 'KalturaStringValue',
|
|
235
|
-
value: 'HEVC'
|
|
236
|
-
}
|
|
237
|
-
};
|
|
238
|
-
sinon.stub(OTTAssetLoader.prototype, 'buildRequests').callsFake(function (params: Object) {
|
|
239
|
-
try {
|
|
240
|
-
params.playbackContext.adapterData.should.deep.equal(adapterDataConfig);
|
|
241
|
-
done();
|
|
242
|
-
} catch (e) {
|
|
243
|
-
done(e);
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
provider.getMediaConfig({entryId: 1234, adapterData: adapterDataConfig});
|
|
247
|
-
});
|
|
248
|
-
});
|
|
249
|
-
|
|
250
|
-
describe('getEntryListConfig', function () {
|
|
251
|
-
let provider, sandbox;
|
|
252
|
-
const partnerId = 198;
|
|
253
|
-
const ks =
|
|
254
|
-
'djJ8MTk4fCkf82moylM8rVli2azka7KoJea3ITlM8Vh3_dYGU722OoJWDCS7_Pp8cqm1z6QtZAfqjGr36SjPr2GbuNKy1ejIDs7KLFpWd_VCEKKtOcwzaJ11FopaSEspI-uJMGFTvS0AmIBE1f137G36MYjOlMc=';
|
|
255
|
-
const playerVersion = '1.2.3';
|
|
256
|
-
|
|
257
|
-
beforeEach(() => {
|
|
258
|
-
sandbox = sinon.createSandbox();
|
|
259
|
-
provider = new OTTProvider({partnerId: partnerId}, playerVersion);
|
|
260
|
-
});
|
|
261
|
-
|
|
262
|
-
afterEach(() => {
|
|
263
|
-
sandbox.restore();
|
|
264
|
-
MultiRequestBuilder.prototype.execute.restore();
|
|
265
|
-
});
|
|
266
|
-
|
|
267
|
-
it('should load a playlist by entry list - anonymous', done => {
|
|
268
|
-
sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
|
|
269
|
-
return new Promise(resolve => {
|
|
270
|
-
resolve({response: new MultiRequestResult(BE_DATA.PlaylistByEntryList.response)});
|
|
271
|
-
});
|
|
272
|
-
});
|
|
273
|
-
provider.getEntryListConfig({entries: ['259153', {entryId: '258459'}]}).then(
|
|
274
|
-
entryListConfig => {
|
|
275
|
-
try {
|
|
276
|
-
entryListConfig.id.should.equal('');
|
|
277
|
-
entryListConfig.items.length.should.equal(2);
|
|
278
|
-
entryListConfig.metadata.name.should.equal('');
|
|
279
|
-
entryListConfig.metadata.description.should.equal('');
|
|
280
|
-
entryListConfig.poster.should.equal('');
|
|
281
|
-
done();
|
|
282
|
-
} catch (err) {
|
|
283
|
-
done(err);
|
|
284
|
-
}
|
|
285
|
-
},
|
|
286
|
-
err => {
|
|
287
|
-
done(err);
|
|
288
|
-
}
|
|
289
|
-
);
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
it('should load a playlist by entry list - with KS', done => {
|
|
293
|
-
sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
|
|
294
|
-
return new Promise(resolve => {
|
|
295
|
-
resolve({response: new MultiRequestResult(BE_DATA.AnonymousPlaylistByEntryList.response)});
|
|
296
|
-
});
|
|
297
|
-
});
|
|
298
|
-
provider.getEntryListConfig({entries: ['259153', {entryId: '258459'}], ks}).then(
|
|
299
|
-
entryListConfig => {
|
|
300
|
-
try {
|
|
301
|
-
entryListConfig.id.should.equal('');
|
|
302
|
-
entryListConfig.items.length.should.equal(2);
|
|
303
|
-
entryListConfig.metadata.name.should.equal('');
|
|
304
|
-
entryListConfig.metadata.description.should.equal('');
|
|
305
|
-
entryListConfig.poster.should.equal('');
|
|
306
|
-
done();
|
|
307
|
-
} catch (err) {
|
|
308
|
-
done(err);
|
|
309
|
-
}
|
|
310
|
-
},
|
|
311
|
-
err => {
|
|
312
|
-
done(err);
|
|
313
|
-
}
|
|
314
|
-
);
|
|
315
|
-
});
|
|
316
|
-
|
|
317
|
-
it('should load a partial playlist by entry list if some requests have an error', done => {
|
|
318
|
-
sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
|
|
319
|
-
return new Promise(resolve => {
|
|
320
|
-
resolve({
|
|
321
|
-
response: new MultiRequestResult({
|
|
322
|
-
result: [...BE_DATA.AnonymousPlaylistByEntryList.response.result, BE_DATA.InvalidKSFormat.response.result.error]
|
|
323
|
-
})
|
|
324
|
-
});
|
|
325
|
-
});
|
|
326
|
-
});
|
|
327
|
-
|
|
328
|
-
provider.getEntryListConfig({entries: ['259153', {entryId: '258459'}], ks}).then(
|
|
329
|
-
entryListConfig => {
|
|
330
|
-
try {
|
|
331
|
-
entryListConfig.id.should.equal('');
|
|
332
|
-
entryListConfig.items.length.should.equal(2);
|
|
333
|
-
entryListConfig.metadata.name.should.equal('');
|
|
334
|
-
entryListConfig.metadata.description.should.equal('');
|
|
335
|
-
entryListConfig.poster.should.equal('');
|
|
336
|
-
done();
|
|
337
|
-
} catch (err) {
|
|
338
|
-
done(err);
|
|
339
|
-
}
|
|
340
|
-
},
|
|
341
|
-
err => {
|
|
342
|
-
done(err);
|
|
343
|
-
}
|
|
344
|
-
);
|
|
345
|
-
});
|
|
346
|
-
});
|
|
347
|
-
|
|
348
|
-
describe('getEntryWithBumper', function () {
|
|
349
|
-
let provider, sandbox;
|
|
350
|
-
const partnerId = 147;
|
|
351
|
-
const ks = 'ks';
|
|
352
|
-
const playerVersion = '1.2.3';
|
|
353
|
-
|
|
354
|
-
beforeEach(() => {
|
|
355
|
-
sandbox = sinon.createSandbox();
|
|
356
|
-
provider = new OTTProvider({partnerId: partnerId}, playerVersion);
|
|
357
|
-
});
|
|
358
|
-
|
|
359
|
-
afterEach(() => {
|
|
360
|
-
sandbox.restore();
|
|
361
|
-
MultiRequestBuilder.prototype.execute.restore();
|
|
362
|
-
});
|
|
363
|
-
|
|
364
|
-
it('should load the entry with bumper', done => {
|
|
365
|
-
sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
|
|
366
|
-
return new Promise(resolve => {
|
|
367
|
-
resolve({response: new MultiRequestResult(BE_DATA.EntryWithBumper.response)});
|
|
368
|
-
});
|
|
369
|
-
});
|
|
370
|
-
provider.getMediaConfig({entryId: '324284', fileIds: '630312', ks}).then(
|
|
371
|
-
mediaConfig => {
|
|
372
|
-
try {
|
|
373
|
-
mediaConfig.should.deep.equal(MEDIA_CONFIG_DATA.EntryWithBumper);
|
|
374
|
-
done();
|
|
375
|
-
} catch (err) {
|
|
376
|
-
done(err);
|
|
377
|
-
}
|
|
378
|
-
},
|
|
379
|
-
err => {
|
|
380
|
-
done(err);
|
|
381
|
-
}
|
|
382
|
-
);
|
|
383
|
-
});
|
|
384
|
-
});
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import OTTBookmarkService from '../../../../../src/k-provider/ott/services/bookmark/bookmark-service';
|
|
2
|
-
import RequestBuilder from '../../../../../src/util/request-builder';
|
|
3
|
-
import OTTConfiguration from '../../../../../src/k-provider/ott/config';
|
|
4
|
-
|
|
5
|
-
describe('bookmark service - add', function () {
|
|
6
|
-
const ottParams = OTTConfiguration.get();
|
|
7
|
-
const ks = '1234';
|
|
8
|
-
const serviceUrl = 'http://my/url';
|
|
9
|
-
let bookMark, playerData;
|
|
10
|
-
|
|
11
|
-
beforeEach(function () {
|
|
12
|
-
playerData = {
|
|
13
|
-
action: 'MY_ACTION'
|
|
14
|
-
};
|
|
15
|
-
bookMark = {
|
|
16
|
-
type: 'MEDIA_TYPE',
|
|
17
|
-
id: 'MEDIA_ID',
|
|
18
|
-
position: 0,
|
|
19
|
-
playerData: playerData
|
|
20
|
-
};
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
it('should be proper values', function () {
|
|
24
|
-
const request = OTTBookmarkService.add(serviceUrl, ks, bookMark);
|
|
25
|
-
(request instanceof RequestBuilder).should.be.true;
|
|
26
|
-
request.service.should.be.equal('bookmark');
|
|
27
|
-
request.action.should.be.equal('add');
|
|
28
|
-
request.method.should.be.equal('POST');
|
|
29
|
-
request.url.should.be.equal(`${serviceUrl}/service/bookmark/action/add`);
|
|
30
|
-
Object.assign(playerData, {objectType: 'KalturaBookmarkPlayerData'});
|
|
31
|
-
Object.assign(bookMark, {objectType: 'KalturaBookmark'});
|
|
32
|
-
JSON.parse(request.params).should.deep.equal({
|
|
33
|
-
bookmark: bookMark,
|
|
34
|
-
ks: ks,
|
|
35
|
-
apiVersion: ottParams.serviceParams.apiVersion
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
});
|