diff --git a/app/embeds/GoogleDocs.test.js b/app/embeds/GoogleDocs.test.js new file mode 100644 index 000000000..fb98df4e4 --- /dev/null +++ b/app/embeds/GoogleDocs.test.js @@ -0,0 +1,31 @@ +/* eslint-disable flowtype/require-valid-file-annotation */ +import embeds from '.'; + +const { GoogleDocs } = embeds; + +describe('GoogleDocs', () => { + const match = GoogleDocs.ENABLED[0]; + test('to be enabled on share link', () => { + expect( + 'https://docs.google.com/document/d/e/2PACX-1vTdddHPoZ5M_47wmSHCoigRIt2cj_Pd-kgtaNQY6H0Jzn0_CVGbxC1GcK5IoNzU615lzguexFwxasAW/pubhtml'.match( + match + ) + ).toBeTruthy(); + expect( + 'https://docs.google.com/document/d/e/2PACX-1vTdddHPoZ5M_47wmSHCoigRIt2cj_Pd-kgtaNQY6H0Jzn0_CVGbxC1GcK5IoNzU615lzguexFwxasAW/pub'.match( + match + ) + ).toBeTruthy(); + }); + + test('to not be enabled elsewhere', () => { + expect( + 'https://docs.google.com/document/d/e/2PACX-1vTdddHPoZ5M_47wmSHCoigR/edit'.match( + match + ) + ).toBe(null); + expect('https://docs.google.com/document'.match(match)).toBe(null); + expect('https://docs.google.com'.match(match)).toBe(null); + expect('https://www.google.com'.match(match)).toBe(null); + }); +}); diff --git a/app/embeds/GoogleSheets.test.js b/app/embeds/GoogleSheets.test.js new file mode 100644 index 000000000..450ab83d9 --- /dev/null +++ b/app/embeds/GoogleSheets.test.js @@ -0,0 +1,26 @@ +/* eslint-disable flowtype/require-valid-file-annotation */ +import embeds from '.'; + +const { GoogleSheets } = embeds; + +describe('GoogleSheets', () => { + const match = GoogleSheets.ENABLED[0]; + test('to be enabled on share link', () => { + expect( + 'https://docs.google.com/spreadsheets/d/e/2PACX-1vTdddHPoZ5M_47wmSHCoigRIt2cj_Pd-kgtaNQY6H0Jzn0_CVGbxC1GcK5IoNzU615lzguexFwxasAW/pub'.match( + match + ) + ).toBeTruthy(); + }); + + test('to not be enabled elsewhere', () => { + expect( + 'https://docs.google.com/spreadsheets/d/e/2PACX-1vTdddHPoZ5M_47wmSHCoigR/edit'.match( + match + ) + ).toBe(null); + expect('https://docs.google.com/spreadsheets'.match(match)).toBe(null); + expect('https://docs.google.com'.match(match)).toBe(null); + expect('https://www.google.com'.match(match)).toBe(null); + }); +}); diff --git a/app/embeds/GoogleSlides.js b/app/embeds/GoogleSlides.js index 44e4ac405..a1f3a5222 100644 --- a/app/embeds/GoogleSlides.js +++ b/app/embeds/GoogleSlides.js @@ -2,7 +2,9 @@ import * as React from 'react'; import Frame from './components/Frame'; -const URL_REGEX = new RegExp('^https?://docs.google.com/presentation/d/(.*)$'); +const URL_REGEX = new RegExp( + '^https?://docs.google.com/presentation/d/(.*)/pub(.*)$' +); type Props = { url: string, diff --git a/app/embeds/GoogleSlides.test.js b/app/embeds/GoogleSlides.test.js new file mode 100644 index 000000000..558d4a268 --- /dev/null +++ b/app/embeds/GoogleSlides.test.js @@ -0,0 +1,31 @@ +/* eslint-disable flowtype/require-valid-file-annotation */ +import embeds from '.'; + +const { GoogleSlides } = embeds; + +describe('GoogleSlides', () => { + const match = GoogleSlides.ENABLED[0]; + test('to be enabled on share link', () => { + expect( + 'https://docs.google.com/presentation/d/e/2PACX-1vTdddHPoZ5M_47wmSHCoigRIt2cj_Pd-kgtaNQY6H0Jzn0_CVGbxC1GcK5IoNzU615lzguexFwxasAW/pub?start=false&loop=false&delayms=3000'.match( + match + ) + ).toBeTruthy(); + expect( + 'https://docs.google.com/presentation/d/e/2PACX-1vTdddHPoZ5M_47wmSHCoigRIt2cj_Pd-kgtaNQY6H0Jzn0_CVGbxC1GcK5IoNzU615lzguexFwxasAW/pub'.match( + match + ) + ).toBeTruthy(); + }); + + test('to not be enabled elsewhere', () => { + expect( + 'https://docs.google.com/presentation/d/e/2PACX-1vTdddHPoZ5M_47wmSHCoigR/edit'.match( + match + ) + ).toBe(null); + expect('https://docs.google.com/presentation'.match(match)).toBe(null); + expect('https://docs.google.com'.match(match)).toBe(null); + expect('https://www.google.com'.match(match)).toBe(null); + }); +});