From 4baf5ce99a6e670f0103def5d575de870e921f49 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Sat, 7 Mar 2020 10:10:26 -0800 Subject: [PATCH] test: Google embeds (#1202) Update slides to only embed pub links --- app/embeds/GoogleDocs.test.js | 31 +++++++++++++++++++++++++++++++ app/embeds/GoogleSheets.test.js | 26 ++++++++++++++++++++++++++ app/embeds/GoogleSlides.js | 4 +++- app/embeds/GoogleSlides.test.js | 31 +++++++++++++++++++++++++++++++ 4 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 app/embeds/GoogleDocs.test.js create mode 100644 app/embeds/GoogleSheets.test.js create mode 100644 app/embeds/GoogleSlides.test.js 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); + }); +});