UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

103 lines (101 loc) 14.6 kB
/* * Copyright (c) 2018 by Filestack. * Some rights reserved. * * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an 'AS IS' BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { preview, getUrl } from './preview'; import { config } from './../../config'; var mockAppendChild = jest.fn(); var defaultSession = { apikey: 'TEST_API_KEY', urls: Object.assign({}, config.urls), }; describe('api:upload:preview', function () { beforeEach(function () { jest.spyOn(window, 'open').mockImplementation(); var createdElement = { src: '', width: '', height: '', }; jest.spyOn(document, 'createElement').mockReturnValue(createdElement); jest.spyOn(document, 'getElementById').mockImplementation(function (id) { var obj; if (id === 'testId') { obj = { appendChild: mockAppendChild }; } return obj; }); }); describe('preview', function () { it('should open a proper url with preview of a file', function () { var handle = 'testHandle'; preview(defaultSession, handle); expect(window.open).toBeCalledTimes(1); expect(window.open).toBeCalledWith('https://cdn.filestackcontent.com/preview/testHandle', 'testHandle'); }); it('should open a proper url with preview of a file with src handle', function () { var handle = 'src://test123/test.jpg'; preview(defaultSession, handle); expect(window.open).toBeCalledTimes(1); expect(window.open).toBeCalledWith('https://cdn.filestackcontent.com/TEST_API_KEY/preview/src://test123/test.jpg', 'src://test123/test.jpg'); }); it('should open iframe inside provided options.id', function () { var handle = 'src://test123/test.jpg'; var options = { id: 'testId', css: 'customCss', }; preview(defaultSession, handle, options); var expected = { 'height': '100%', 'width': '100%', 'src': 'https://cdn.filestackcontent.com/TEST_API_KEY/preview=css:%22customCss%22/src://test123/test.jpg' }; expect(mockAppendChild).toBeCalledTimes(1); expect(mockAppendChild).toBeCalledWith(expected); }); it('should throw an error when handle is not provided', function () { expect(function () { preview(defaultSession); }).toThrow('A valid Filestack handle or storage alias is required for preview'); }); it('should throw an error when id provided and dom element not found', function () { var handle = 'src://test123/test.jpg'; var options = { id: 'testId2', }; expect(function () { preview(defaultSession, handle, options); }).toThrow('DOM Element with id "testId2" not found.'); }); it('should throw an error on invalid preview params', function () { var handle = 'src://test123/test.jpg'; var options = { id: {}, test: 123, }; // @ts-ignore expect(function () { preview(defaultSession, handle, options); }).toThrow('Invalid preview params'); }); }); describe('getUrl', function () { it('should be able to get url with security', function () { var handle = 'TEST_HANDLE'; var options = { id: 'testId2', }; var security = { policy: 'eyJleHBpcnkiOjE1MjM1OTU2MDAsImNhbGwiOlsicmVhZCIsImNvbnZlcnQiXSwiaGFuZGxlIjoiYmZUTkNpZ1JMcTBRTU9yc0ZLemIifQ==', signature: 'ab1624c9f219ca0118f1af43d21ee87a09a07645c15c9fdbb7447818739c2b8b', }; var result = getUrl(defaultSession, handle, options, security); var expected = 'https://cdn.filestackcontent.com/preview/security=policy:eyJleHBpcnkiOjE1MjM1OTU2MDAsImNhbGwiOlsicmVhZCIsImNvbnZlcnQiXSwiaGFuZGxlIjoiYmZUTkNpZ1JMcTBRTU9yc0ZLemIifQ==,signature:ab1624c9f219ca0118f1af43d21ee87a09a07645c15c9fdbb7447818739c2b8b/TEST_HANDLE'; expect(result).toBe(expected); }); }); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3ByZXZpZXcuc3BlYy5icm93c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7QUFFbEMsSUFBTSxjQUFjLEdBQUc7SUFDckIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7Q0FDckMsQ0FBQztBQUVGLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtJQUM3QixVQUFVLENBQUM7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRWhELElBQU0sY0FBYyxHQUFRO1lBQzFCLEdBQUcsRUFBRSxFQUFFO1lBQ1AsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFDLEVBQUU7WUFDM0QsSUFBSSxHQUFHLENBQUM7WUFFUixJQUFJLEVBQUUsS0FBSyxRQUFRLEVBQUU7Z0JBQ25CLEdBQUcsR0FBRyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsQ0FBQzthQUN4QztZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEs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ZixNQUFNLEVBQUUsOEdBQThHO2dCQUN0SCxTQUFTLEVBQUUsa0VBQWtFO2FBQzlFLENBQUM7WUFFRixJQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDakUsSUFBTSxRQUFRLEdBQUcsOFBBQThQLENBQUM7WUFDaFIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoibGliL2FwaS9wcmV2aWV3LnNwZWMuYnJvd3Nlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICdMaWNlbnNlJyk7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgcHJldmlldywgZ2V0VXJsIH0gZnJvbSAnLi9wcmV2aWV3JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJy4vLi4vLi4vY29uZmlnJztcblxuY29uc3QgbW9ja0FwcGVuZENoaWxkID0gamVzdC5mbigpO1xuXG5jb25zdCBkZWZhdWx0U2Vzc2lvbiA9IHtcbiAgYXBpa2V5OiAnVEVTVF9BUElfS0VZJyxcbiAgdXJsczogT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnLnVybHMpLFxufTtcblxuZGVzY3JpYmUoJ2FwaTp1cGxvYWQ6cHJldmlldycsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC5zcHlPbih3aW5kb3csICdvcGVuJykubW9ja0ltcGxlbWVudGF0aW9uKCk7XG5cbiAgICBjb25zdCBjcmVhdGVkRWxlbWVudDogYW55ID0ge1xuICAgICAgc3JjOiAnJyxcbiAgICAgIHdpZHRoOiAnJyxcbiAgICAgIGhlaWdodDogJycsXG4gICAgfTtcbiAgICBqZXN0LnNweU9uKGRvY3VtZW50LCAnY3JlYXRlRWxlbWVudCcpLm1vY2tSZXR1cm5WYWx1ZShjcmVhdGVkRWxlbWVudCk7XG5cbiAgICBqZXN0LnNweU9uKGRvY3VtZW50LCAnZ2V0RWxlbWVudEJ5SWQnKS5tb2NrSW1wbGVtZW50YXRpb24oKGlkKSA9PiB7XG4gICAgICBsZXQgb2JqO1xuXG4gICAgICBpZiAoaWQgPT09ICd0ZXN0SWQnKSB7XG4gICAgICAgIG9iaiA9IHsgYXBwZW5kQ2hpbGQ6IG1vY2tBcHBlbmRDaGlsZCB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncHJldmlldycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIG9wZW4gYSBwcm9wZXIgdXJsIHdpdGggcHJldmlldyBvZiBhIGZpbGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGUgPSAndGVzdEhhbmRsZSc7XG4gICAgICBwcmV2aWV3KGRlZmF1bHRTZXNzaW9uLCBoYW5kbGUpO1xuICAgICAgZXhwZWN0KHdpbmRvdy5vcGVuKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgICBleHBlY3Qod2luZG93Lm9wZW4pLnRvQmVDYWxsZWRXaXRoKCdodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbS9wcmV2aWV3L3Rlc3RIYW5kbGUnLCAndGVzdEhhbmRsZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBvcGVuIGEgcHJvcGVyIHVybCB3aXRoIHByZXZpZXcgb2YgYSBmaWxlIHdpdGggc3JjIGhhbmRsZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZSA9ICdzcmM6Ly90ZXN0MTIzL3Rlc3QuanBnJztcbiAgICAgIHByZXZpZXcoZGVmYXVsdFNlc3Npb24sIGhhbmRsZSk7XG5cbiAgICAgIGV4cGVjdCh3aW5kb3cub3BlbikudG9CZUNhbGxlZFRpbWVzKDEpO1xuICAgICAgZXhwZWN0KHdpbmRvdy5vcGVuKS50b0JlQ2FsbGVkV2l0aCgnaHR0cHM6Ly9jZG4uZmlsZXN0YWNrY29udGVudC5jb20vVEVTVF9BUElfS0VZL3ByZXZpZXcvc3JjOi8vdGVzdDEyMy90ZXN0LmpwZycsICdzcmM6Ly90ZXN0MTIzL3Rlc3QuanBnJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG9wZW4gaWZyYW1lIGluc2lkZSBwcm92aWRlZCBvcHRpb25zLmlkJywgKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlID0gJ3NyYzovL3Rlc3QxMjMvdGVzdC5qcGcnO1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgaWQ6ICd0ZXN0SWQnLFxuICAgICAgICBjc3M6ICdjdXN0b21Dc3MnLFxuICAgICAgfTtcblxuICAgICAgcHJldmlldyhkZWZhdWx0U2Vzc2lvbiwgaGFuZGxlLCBvcHRpb25zKTtcbiAgICAgIGNvbnN0IGV4cGVjdGVkID0geyAnaGVpZ2h0JzogJzEwMCUnLCAnd2lkdGgnOiAnMTAwJScsICdzcmMnOiAnaHR0cHM6Ly9jZG4uZmlsZXN0YWNrY29udGVudC5jb20vVEVTVF9BUElfS0VZL3ByZXZpZXc9Y3NzOiUyMmN1c3RvbUNzcyUyMi9zcmM6Ly90ZXN0MTIzL3Rlc3QuanBnJyB9O1xuICAgICAgZXhwZWN0KG1vY2tBcHBlbmRDaGlsZCkudG9CZUNhbGxlZFRpbWVzKDEpO1xuICAgICAgZXhwZWN0KG1vY2tBcHBlbmRDaGlsZCkudG9CZUNhbGxlZFdpdGgoZXhwZWN0ZWQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciB3aGVuIGhhbmRsZSBpcyBub3QgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4geyBwcmV2aWV3KGRlZmF1bHRTZXNzaW9uKTsgfSkudG9UaHJvdygnQSB2YWxpZCBGaWxlc3RhY2sgaGFuZGxlIG9yIHN0b3JhZ2UgYWxpYXMgaXMgcmVxdWlyZWQgZm9yIHByZXZpZXcnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3Igd2hlbiBpZCBwcm92aWRlZCBhbmQgZG9tIGVsZW1lbnQgbm90IGZvdW5kJywgKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlID0gJ3NyYzovL3Rlc3QxMjMvdGVzdC5qcGcnO1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgaWQ6ICd0ZXN0SWQyJyxcbiAgICAgIH07XG4gICAgICBleHBlY3QoKCkgPT4geyBwcmV2aWV3KGRlZmF1bHRTZXNzaW9uLCBoYW5kbGUsIG9wdGlvbnMpOyB9KS50b1Rocm93KCdET00gRWxlbWVudCB3aXRoIGlkIFwidGVzdElkMlwiIG5vdCBmb3VuZC4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3Igb24gaW52YWxpZCBwcmV2aWV3IHBhcmFtcycsICgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZSA9ICdzcmM6Ly90ZXN0MTIzL3Rlc3QuanBnJztcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGlkOiB7fSxcbiAgICAgICAgdGVzdDogMTIzLFxuICAgICAgfTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGV4cGVjdCgoKSA9PiB7IHByZXZpZXcoZGVmYXVsdFNlc3Npb24sIGhhbmRsZSwgb3B0aW9ucyk7IH0pLnRvVGhyb3coJ0ludmFsaWQgcHJldmlldyBwYXJhbXMnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldFVybCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gZ2V0IHVybCB3aXRoIHNlY3VyaXR5JywgKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlID0gJ1RFU1RfSEFORExFJztcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGlkOiAndGVzdElkMicsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzZWN1cml0eSA9IHtcbiAgICAgICAgcG9saWN5OiAnZXlKbGVIQnBjbmtpT2pFMU1qTTFPVFUyTURBc0ltTmhiR3dpT2xzaWNtVmhaQ0lzSW1OdmJuWmxjblFpWFN3aWFHRnVaR3hsSWpvaVltWlVUa05wWjFKTWNUQlJUVTl5YzBaTGVtSWlmUT09JyxcbiAgICAgICAgc2lnbmF0dXJlOiAnYWIxNjI0YzlmMjE5Y2EwMTE4ZjFhZjQzZDIxZWU4N2EwOWEwNzY0NWMxNWM5ZmRiYjc0NDc4MTg3MzljMmI4YicsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBnZXRVcmwoZGVmYXVsdFNlc3Npb24sIGhhbmRsZSwgb3B0aW9ucywgc2VjdXJpdHkpO1xuICAgICAgY29uc3QgZXhwZWN0ZWQgPSAnaHR0cHM6Ly9jZG4uZmlsZXN0YWNrY29udGVudC5jb20vcHJldmlldy9zZWN1cml0eT1wb2xpY3k6ZXlKbGVIQnBjbmtpT2pFMU1qTTFPVFUyTURBc0ltTmhiR3dpT2xzaWNtVmhaQ0lzSW1OdmJuWmxjblFpWFN3aWFHRnVaR3hsSWpvaVltWlVUa05wWjFKTWNUQlJUVTl5YzBaTGVtSWlmUT09LHNpZ25hdHVyZTphYjE2MjRjOWYyMTljYTAxMThmMWFmNDNkMjFlZTg3YTA5YTA3NjQ1YzE1YzlmZGJiNzQ0NzgxODczOWMyYjhiL1RFU1RfSEFORExFJztcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19