MediaCoreDAO.saveContentRevisionId(mediaCoreId, content.id, content.latestRevisionId, function(err) { assert.ok(!err); // Ensure an invalid id results in a 400 RestAPI.MediaCore.notifyEncodingComplete(user.restContext, 'not-an-id', function(err) { assert.ok(err); assert.equal(err.code, 400); // Ensure a non-existing id results in a 404 RestAPI.MediaCore.notifyEncodingComplete(user.restContext, 0, function(err) { assert.ok(err); assert.equal(err.code, 404); var fetchedThumbnails = false; // Add a handler that listens for the expected thumbnail request returning a successful response mediaCoreApp.get('/api2/media/:mediaCoreId/thumbs', function(req, res) { res.status(200).send({'sizes': {}}); }); RestAPI.MediaCore.notifyEncodingComplete(user.restContext, mediaCoreId, function(err) { assert.ok(!err); return callback(); }); }); }); });
RestAPI.MediaCore.notifyEncodingComplete(user.restContext, 'not-an-id', err => { assert.ok(err); assert.strictEqual(err.code, 400); // Ensure a non-existing id results in a 404 RestAPI.MediaCore.notifyEncodingComplete(user.restContext, 0, err => { assert.ok(err); assert.strictEqual(err.code, 404); const fetchedThumbnails = false; // Add a handler that listens for the expected thumbnail request returning a successful response mediaCoreApp.get('/api2/media/:mediaCoreId/thumbs', (req, res) => { res.status(200).send({ sizes: {} }); }); RestAPI.MediaCore.notifyEncodingComplete( user.restContext, mediaCoreId, err => { assert.ok(!err); return callback(); } ); }); });
err => { assert.ok(!err); // Set up the embedcode handlers for the cambridge and gatech MediaCore instances mediaCoreApp.get( '/api2/media/:mediaCoreId/embedcode', (req, res) => { assert.strictEqual(req.params.mediaCoreId, '12345'); res.status(200).send({ html: '<iframe src="http://cambridge.mediacore.tv"></iframe>' }); } ); gtMediaCoreApp.get( '/api2/media/:mediaCoreId/embedcode', (req, res) => { assert.strictEqual(req.params.mediaCoreId, '67890'); res.status(200).send({ html: '<iframe src="http://gatech.mediacore.tv"></iframe>' }); } ); // Access the cambridge tenant file with the gatech user to ensure the request still goes to the cambridge MediaCore instance RestAPI.MediaCore.getEmbedCode( gtUser.restContext, camContent.id, (err, embedCode) => { assert.ok(!err); assert.strictEqual( embedCode.html.indexOf( '<iframe src="http://cambridge.mediacore.tv' ), 0 ); RestAPI.MediaCore.getEmbedCode( camUser.restContext, gtContent.id, (err, embedCode) => { assert.ok(!err); assert.strictEqual( embedCode.html.indexOf( '<iframe src="http://gatech.mediacore.tv' ), 0 ); return callback(); } ); } ); }
ContentDAO.Previews.storeMetadata(content, content.latestRevisionId, 'done', null, null, {'mediaCoreId': 12345}, {}, function(err) { assert.ok(!err); // Now getting the embed code as the user that created the content item should be successful RestAPI.MediaCore.getEmbedCode(user.restContext, content.id, function(err, embedCode) { assert.ok(!err); assert.ok(embedCode); assert.ok(embedCode.html); return callback(); }); });
err => { assert.ok(err); assert.strictEqual(err.code, 404); // Verify we get 400 when fetching embed code for content item who doesn't have a mediaCoreId RestAPI.MediaCore.getEmbedCode(user.restContext, content.id, err => { assert.ok(err); assert.strictEqual(err.code, 400); // Get the embed code as anonymous to ensure they cannot RestAPI.MediaCore.getEmbedCode(camAnonymousRestContext, content.id, err => { assert.ok(err); assert.strictEqual(err.code, 401); // Get the embed code as another unauthorized user to ensure they cannot RestAPI.MediaCore.getEmbedCode( unauthorizedUser.restContext, content.id, err => { assert.ok(err); assert.strictEqual(err.code, 401); // Set a MediaCore id on the content item ContentDAO.Previews.storeMetadata( content, content.latestRevisionId, 'done', null, null, { mediaCoreId: 12345 }, {}, err => { assert.ok(!err); // Now getting the embed code as the user that created the content item should be successful RestAPI.MediaCore.getEmbedCode( user.restContext, content.id, (err, embedCode) => { assert.ok(!err); assert.ok(embedCode); assert.ok(embedCode.html); return callback(); } ); } ); } ); }); }); }
MediaCoreDAO.saveContentRevisionId(mediaCoreId, content.id, content.latestRevisionId, function(err) { assert.ok(!err); // Add a handler that listens for the expected thumbnail request returning a successful response mediaCoreApp.get('/api2/media/:mediaCoreId/thumbs', function(req, res) { res.status(502).send({'sizes': {}}); }); // Cause the thumbnails to be updated RestAPI.MediaCore.notifyEncodingComplete(user.restContext, mediaCoreId, function(err) { assert.ok(err); assert.equal(err.code, 500); return callback(); }); });
err => { assert.ok(!err); // Now getting the embed code as the user that created the content item should be successful RestAPI.MediaCore.getEmbedCode( user.restContext, content.id, (err, embedCode) => { assert.ok(!err); assert.ok(embedCode); assert.ok(embedCode.html); return callback(); } ); }
err => { assert.ok(!err); // Add a handler that listens for the expected thumbnail request returning a successful response mediaCoreApp.get('/api2/media/:mediaCoreId/thumbs', (req, res) => { res.status(502).send({ sizes: {} }); }); // Cause the thumbnails to be updated RestAPI.MediaCore.notifyEncodingComplete(user.restContext, mediaCoreId, err => { assert.ok(err); assert.strictEqual(err.code, 500); return callback(); }); }
RestAPI.MediaCore.notifyEncodingComplete(user.restContext, 0, function(err) { assert.ok(err); assert.equal(err.code, 404); var fetchedThumbnails = false; // Add a handler that listens for the expected thumbnail request returning a successful response mediaCoreApp.get('/api2/media/:mediaCoreId/thumbs', function(req, res) { res.status(200).send({'sizes': {}}); }); RestAPI.MediaCore.notifyEncodingComplete(user.restContext, mediaCoreId, function(err) { assert.ok(!err); return callback(); }); });
ContentDAO.Previews.storeMetadata(content, content.latestRevisionId, 'done', null, null, {'mediaCoreId': 12345}, {}, function(err) { assert.ok(!err); // Add a handler for the embed code endpoint that returns 200 but invalid JSON mediaCoreApp.get('/api2/media/:mediaCoreId/embedcode', function(req, res) { assert.equal(req.params.mediaCoreId, 12345); res.status(502).send({'reason': 'you are DOSd'}); }); // Verify we get 500 when fetching embed code for a MediaCore server that has gone awry RestAPI.MediaCore.getEmbedCode(user.restContext, content.id, function(err) { assert.ok(err); assert.equal(err.code, 500); return callback(); }); });
ContentDAO.Previews.storeMetadata(content, content.latestRevisionId, 'done', null, null, {'mediaCoreId': 12345}, {}, function(err) { assert.ok(!err); // Add a handler for the embed code endpoint that returns 200 but invalid JSON mediaCoreApp.get('/api2/media/:mediaCoreId/embedcode', function(req, res) { assert.equal(req.params.mediaCoreId, 12345); res.status(200).send('not valid json'); }); // Verify we get 500 because the MediaCore response was not valid JSON RestAPI.MediaCore.getEmbedCode(user.restContext, content.id, function(err) { assert.ok(err); assert.equal(err.code, 500); return callback(); }); });
err => { assert.ok(!err); // Add a handler for the embed code endpoint that returns 200 but invalid JSON mediaCoreApp.get('/api2/media/:mediaCoreId/embedcode', (req, res) => { assert.strictEqual(req.params.mediaCoreId, '12345'); res.status(200).send('not valid json'); }); // Verify we get 500 because the MediaCore response was not valid JSON RestAPI.MediaCore.getEmbedCode(user.restContext, content.id, err => { assert.ok(err); assert.strictEqual(err.code, 500); return callback(); }); }
err => { assert.ok(!err); // Add a handler for the embed code endpoint that returns 200 but invalid JSON mediaCoreApp.get('/api2/media/:mediaCoreId/embedcode', (req, res) => { assert.strictEqual(req.params.mediaCoreId, '12345'); res.status(502).send({ reason: 'you are DOSd' }); }); // Verify we get 500 when fetching embed code for a MediaCore server that has gone awry RestAPI.MediaCore.getEmbedCode(user.restContext, content.id, err => { assert.ok(err); assert.strictEqual(err.code, 500); return callback(); }); }
MediaCoreDAO.saveContentRevisionId(mediaCoreId, content.id, content.latestRevisionId, function(err) { assert.ok(!err); // Add a handler that listens for the expected thumbnail request returning a successful response mediaCoreApp.get('/api2/media/:mediaCoreId/thumbs', function(req, res) { res.status(200).send({ 'sizes': { 'l': 'http://path/to/large/image', '720p': 'http://path/to/720p/image' } }); }); // Ensure a non-existing id results in a 404 RestAPI.MediaCore.notifyEncodingComplete(user.restContext, mediaCoreId, function(err) { assert.ok(!err); RestAPI.Content.getContent(user.restContext, content.id, function(err, content) { assert.ok(!err); assert.ok(content.previews); // Verify the URIs are not returned in the preview model assert.ok(!content.previews.smallUri); assert.ok(!content.previews.mediumUri); assert.ok(!content.previews.largeUri); assert.ok(!content.previews.wideUri); // Verify the URLs. The "remote" backend simply uses the location part as-is so the url should just be the // direct links to the files assert.equal(content.previews.smallUrl, 'http://path/to/large/image'); assert.equal(content.previews.mediumUrl, 'http://path/to/720p/image'); assert.equal(content.previews.largeUrl, 'http://path/to/720p/image'); assert.equal(content.previews.wideUrl, 'http://path/to/720p/image'); return callback(); }); }); });
(err, embedCode) => { assert.ok(!err); assert.strictEqual( embedCode.html.indexOf( '<iframe src="http://cambridge.mediacore.tv' ), 0 ); RestAPI.MediaCore.getEmbedCode( camUser.restContext, gtContent.id, (err, embedCode) => { assert.ok(!err); assert.strictEqual( embedCode.html.indexOf( '<iframe src="http://gatech.mediacore.tv' ), 0 ); return callback(); } ); }
RestAPI.Content.createFile(user.restContext, 'test video', null, 'private', _getVideoStream, null, null, null, function(err, content) { assert.ok(!err); // Add a handler for the embed code endpoint that simply returns a 200 and some dummy embed source mediaCoreApp.get('/api2/media/:mediaCoreId/embedcode', function(req, res) { assert.equal(req.params.mediaCoreId, 12345); res.status(200).send({ 'html': '<iframe src="http://www.google.ca?test=true"></iframe>' }); }); // Verify we get 400 when fetching embed code for a non-resource id RestAPI.MediaCore.getEmbedCode(user.restContext, 'not-an-id', function(err) { assert.ok(err); assert.equal(err.code, 400); // Verify we get 404 when fetching embed code for non-existing content item RestAPI.MediaCore.getEmbedCode(user.restContext, 'c:camtest:non-existing-content', function(err) { assert.ok(err); assert.equal(err.code, 404); // Verify we get 400 when fetching embed code for content item who doesn't have a mediaCoreId RestAPI.MediaCore.getEmbedCode(user.restContext, content.id, function(err) { assert.ok(err); assert.equal(err.code, 400); // Get the embed code as anonymous to ensure they cannot RestAPI.MediaCore.getEmbedCode(camAnonymousRestContext, content.id, function(err) { assert.ok(err); assert.equal(err.code, 401); // Get the embed code as another unauthorized user to ensure they cannot RestAPI.MediaCore.getEmbedCode(unauthorizedUser.restContext, content.id, function(err) { assert.ok(err); assert.equal(err.code, 401); // Set a MediaCore id on the content item ContentDAO.Previews.storeMetadata(content, content.latestRevisionId, 'done', null, null, {'mediaCoreId': 12345}, {}, function(err) { assert.ok(!err); // Now getting the embed code as the user that created the content item should be successful RestAPI.MediaCore.getEmbedCode(user.restContext, content.id, function(err, embedCode) { assert.ok(!err); assert.ok(embedCode); assert.ok(embedCode.html); return callback(); }); }); }); }); }); }); }); });
RestAPI.Content.setPreviewItems(gtAdminRestContext, gtContent.id, gtContent.latestRevisionId, 'done', {}, {}, {}, {'mediaCoreId': 67890}, function(err) { assert.ok(!err); // Set up the embedcode handlers for the cambridge and gatech MediaCore instances mediaCoreApp.get('/api2/media/:mediaCoreId/embedcode', function(req, res) { assert.equal(req.params.mediaCoreId, 12345); res.status(200).send({'html': '<iframe src="http://cambridge.mediacore.tv"></iframe>'}); }); gtMediaCoreApp.get('/api2/media/:mediaCoreId/embedcode', function(req, res) { assert.equal(req.params.mediaCoreId, 67890); res.status(200).send({'html': '<iframe src="http://gatech.mediacore.tv"></iframe>'}); }); // Access the cambridge tenant file with the gatech user to ensure the request still goes to the cambridge MediaCore instance RestAPI.MediaCore.getEmbedCode(gtUser.restContext, camContent.id, function(err, embedCode) { assert.ok(!err); assert.strictEqual(embedCode.html.indexOf('<iframe src="http://cambridge.mediacore.tv'), 0); RestAPI.MediaCore.getEmbedCode(camUser.restContext, gtContent.id, function(err, embedCode) { assert.ok(!err); assert.strictEqual(embedCode.html.indexOf('<iframe src="http://gatech.mediacore.tv'), 0); return callback(); }); }); });
RestAPI.MediaCore.getEmbedCode(camAnonymousRestContext, content.id, function(err) { assert.ok(err); assert.equal(err.code, 401); // Get the embed code as another unauthorized user to ensure they cannot RestAPI.MediaCore.getEmbedCode(unauthorizedUser.restContext, content.id, function(err) { assert.ok(err); assert.equal(err.code, 401); // Set a MediaCore id on the content item ContentDAO.Previews.storeMetadata(content, content.latestRevisionId, 'done', null, null, {'mediaCoreId': 12345}, {}, function(err) { assert.ok(!err); // Now getting the embed code as the user that created the content item should be successful RestAPI.MediaCore.getEmbedCode(user.restContext, content.id, function(err, embedCode) { assert.ok(!err); assert.ok(embedCode); assert.ok(embedCode.html); return callback(); }); }); }); });